0

このクエリが間違っている理由を教えてもらえますか?

$tbl_name = "Attributes";
$pieces = //some array 
//other variables... blah blah blah

$query = "INSERT INTO $tbl_name (Word, What, When) VALUES";
foreach($pieces as $word){
    $query .= "('$word', '$What', '$When'),";
}

$query = substr($query, 0, -1);  //to remove the last comma

mysql_query($query) or die(mysql_error());

あなたが言うことができるなら、私は単一のクエリで複数の行を挿入しようとしています. 実行しようとすると、構文エラーが発生しますが、99.9999% スペル ミスがないことを確信しています。このように一度に複数の行を挿入しようとして、何か間違っていますか?

4

2 に答える 2

2

whenが予約語である場合は、``で囲むか、別の語を使用してください。MySQL の予約語のリスト: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

于 2013-09-13T02:21:58.673 に答える
0

あなたの $word,$what,$when のある時点で unsacaped の ' がある可能性はありますか? またはいくつかのmysqlインジェクション?

はいの場合、mysql_real_escape_string http://php.net/manual/en/function.mysql-real-escape-string.phpを使用してみます

于 2013-09-13T02:22:41.580 に答える