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 回答