我的代码
$count++;
$yesstring = 'MATCH';
echo $count . '. RESULT ' . $idcheck . ': ' . $phonecheck . ' was matched. <br />';
$matchquery = sprintf("UPDATE `list` SET match = `%s` WHERE homephone = `%s` LIMIT 1",
mysql_real_escape_string($yesstring),
mysql_real_escape_string($phonecheck));
$matchresult = mysql_query($matchquery);
if (!$matchresult) {
die("Invalid query: " . mysql_error());
}
这是我的错误
查询无效:您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的'match = MATCH
WHERE homephone = (999) 999-9999
LIMIT 1'附近使用正确的语法
任何帮助将不胜感激
答案 0 :(得分:2)
match
是MySQL中的reserved word。用反引号逃脱它:
UPDATE `list` SET `match` = ...
答案 1 :(得分:1)
当你应该使用常规报价时,你正在使用反引号。反引号保留用于转义表名或列名:
INSERT INTO `foo` VALUES ('value')
虽然您正在正确转义SQL,但调用mysql_real_escape_string
可能会被证明是一种持续的麻烦。从长远来看,切换到mysqli
或PDO会使编写正确的SQL变得更加容易。