SQL语法错误

时间:2012-10-26 19:44:13

标签: php sql

  

可能重复:
  how escape quotes when inserting into database in PHP

为什么这个sql查询会产生这个错误?

$sql_categorybooknumber = "SELECT SUM(items_counter) 
                             FROM categories 
                            WHERE category_id = '$categoryid' ";

错误是

You have an error in your SQL syntax
'SELECT SUM(items_counter) FROM categories WHERE category_id = '426' WHER' at line 1

categoryid在这里定义

elseif (   preg_match($regexComputerProgramingkeyword1, $itemtitle) 
        or preg_match ($regexComputerProgramingkeyword2, $itemtitle) 
        or preg_match($regexComputerProgramingkeyword1, $productsgroupmessage) 
        or preg_match($regexComputerProgramingkeyword2, $productsgroupmessage))  
{
  $categoryid = '426';  
} 

3 个答案:

答案 0 :(得分:0)

我认为你不需要$category_id左右的引文。这是一个数值吗?

答案 1 :(得分:0)

我猜测category_idINT值。单引号在SQL中分隔字符串,因此它试图查找只有整数的字符串,从而查找错误。试试这个问题:

SELECT SUM(items_counter) FROM categories WHERE category_id=$categoryid

此外,当您声明$categoryid时,请执行此操作(请注意缺少引号):

$categoryid = 426;

如果不起作用,请确保items_counternumeric field

作为旁注,将变量直接放入SQL查询是一个真正糟糕的想法。阅读PDO,这太棒了。

答案 2 :(得分:0)

你的错误说'WHER'这意味着你以某种方式重写了where子句,确保你没有在你的MySQL语句中添加其他子句,检查你的代码。