这个sql查询有什么问题。我想不出来。
$query = "SELECT *
FROM tagPairs
WHERE (tag1Id IN ($tag1Id, $tag2Id))
AND (tag2Id IN ($tag1Id, $tag2Id))";
错误代码:
无法执行查询:您的SQL语法中有错误;检查与您的MySQL服务器版本对应的手册,以便在')附近使用正确的语法 AND(tag2Id IN(,))'在第3行
提前感谢!
答案 0 :(得分:4)
$tag1Id
和$tag2Id
都是空字符串或空字符串。最简单的解决方案可能是明确地将它们转换为数值:
$tag1Id = intval($tag1Id); $tag2Id = intval($tag2Id); $query = "SELECT * FROM tagPairs WHERE (tag1Id IN ($tag1Id, $tag2Id)) AND (tag2Id IN ($tag1Id, $tag2Id))";
答案 1 :(得分:3)
$tag1Id
和$tag2Id
为空。
这就是为什么您的错误显示(tag2Id IN (, ))
。
答案 2 :(得分:1)
您的$tag1Id
和$tag2Id
是空字符串。为它们分配一个值,它应该可以正常工作。
另外,选择*是一个坏主意。选择您需要明确的列。