0
このphpの挿入コードは、csvファイルから値をインポートする私のPHPスクリプトの一部です。私はcsvファイルに設定する他の値でfld_idを挿入します。 のCSVコンテンツの例:123456789、タイトル、説明:値の構文で選択したPHPの挿入
data[0] is 123456789
data[1] is title
data[2] is description
挿入は、MySQLクライアント上でruningている場合、値が挿入正常ですが、PHPページからエラーが返されます。fld_idcatにすることはできませんヌル。
これは、PHPコードの一部です:
/*other code*/
do {
if ($data[0]) {
mysql_query("
INSERT INTO table_imports
(
fld_username,
fld_idcat,
fld_title,
fld_desc,
fld_userimport
)
VALUES
(
'$Username',
(select id_cat from table_category where id_cat_random = '".addslashes($data[0])."'),
'".addslashes($data[1])."',
'".addslashes($data[2])."'
'userImport'
)
");
}
} while ($data = fgetcsv($handle,1000,",","'"));
header('Refresh: 6; URL=finishPage.php');
die(mysql_error());
/*other code*/
変数$データで値123456789を渡すために、このPHPインサートを修正するためにどのように[0]を選択内側?
私は私の問題
おかげで、すべての場合
正確なエラーメッセージは何ですか?それはMySQLのエラーのようには見えません。あなたのコードはMySQLからのエラーをチェックすることさえできません。 – Barmar
[新しいコードでは 'mysql_ *'関数を使わないでください](http://stackoverflow.com/questions/12859942/)。それらはもはや維持されておらず(正式に推奨されていません)(https://wiki.php.net/rfc/mysql_deprecation)。 [赤いボックス](http://uk.php.net/manual/en/function.mysql-connect.php)を参照してください。代わりに[* prepared statements *](https://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http:// php.net/mysqli) - [この記事](http://php.net/manual/en/mysqlinfo.api.choosing.php)は、あなたに最適なものを決定するのに役立ちます。 –
あなたのスクリプトは[SQLインジェクション攻撃](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)の危険にさらされています。[Little Bobby Tables](http://bobby-tables.com/)[あなたが入力を逃れている場合でも、その安全ではありません!](http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around -mysql-real-escape-string)[prepared parameterized statements](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)を使用します。 –