连接表(SQL语法中的错误)

时间:2012-09-04 13:38:42

标签: php

我想知道是否有人可以帮我发现错误。我很擅长加入牌桌,但最后我做得很好。

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在''(10,8)'和d.streamitem_target IN'(10,8)'附近使用正确的语法。)在第9行订购d.streamitem_id DE'

$call="SELECT d.*, c.*, u.*
  FROM streamdata          AS d
  JOIN streamdata_comments AS c ON d.streamitem_id = c.comment_streamitem
  JOIN users               AS u ON u.id = c.comment_poster
 WHERE c.comment_poster = '$following_string'
   AND d.streamitem_id < '$lastID'
   AND (d.streamitem_target  = '$following_string' OR
       d.streamitem_creator = '$following_string')
   OR  d.streamitem_creator IN '$friendlist' 
   AND d.streamitem_target IN '$friendlist'
   ORDER BY d.streamitem_id DESC LIMIT 10";

3 个答案:

答案 0 :(得分:3)

OR  d.streamitem_creator IN '$friendlist' 

应该是

 OR  d.streamitem_creator IN $friendlist

您不引用IN个变量。

同样适用于AND d.streamitem_target IN '$friendlist'行。

答案 1 :(得分:2)

我想可能在IN子句中围绕$ friends列表的单引号是你的问题,例如,改为

   OR  d.streamitem_creator IN $friendlist 
   AND d.streamitem_target IN $friendlist

答案 2 :(得分:1)

您在引号中用逗号分隔的列表括起来。不要那样做。

.
.
.
OR  d.streamitem_creator IN $friendlist
AND d.streamitem_target IN $friendlist
.
.
.