2012-08-01 103 views
0

Possible Duplicate:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL resultMySQL错误消息抛出试图做一个连接查询

这里是代码:

$result=mysql_query(" 
SELECT items.items_id, 
COUNT(ratings.item_id) AS TotalRating, 
AVG(ratings.rating) AS AverageRating 
FROM 'items' 
LEFT JOIN ratings ON (ratings.item_id = items.items_id) 
WHERE ratings.item_id = '{$item_id}' ;"); 

echo "Error message = ".mysql_error(); 

while($row=mysql_fetch_assoc($result)) { 
     $output[]=$row; 
} 

这里是错误:

Error message = You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''items' LEFT JOIN ratings ON (ratings.item_id = items.items_id) WHERE ' at line 4 
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/content/k/i/c/kickinglettuce/html/Kickinglettuce/ratethis/get_ratings.php on line 38 
null 

我已经证实,$ ITEM_ID是正确的响应基于回声声明。

+1

围绕项目\\项目\'使用反引号。 – walrii 2012-08-01 03:13:38

回答

2

在单引号(')而不是BACKTICKS(`)中有表items

+0

就是这样,标示你是正确的! (当时间允许的话) – KickingLettuce 2012-08-01 03:16:15

+0

我希望你已经在$ item_id上调用mysql_real_escape_string,否则你打开SQL注入。 – 2012-08-01 18:53:40

+0

是的,我已经确认了这一点。我有$ item = $ database-> escape_value(trim($ _ POST ['item']));它指向一种做这种事情的方法。编辑:虽然,$ item_id在$ item变量被提交后 - 我现在没有保护它,即使它不是用户输入? – KickingLettuce 2012-08-01 20:08:57