【发布时间】:2012-07-13 23:11:19
【问题描述】:
这是我正在构建的 where 子句:
$where = "requesterid='".$memberid."' AND recieverid='".$tomemberid."' OR requesterid='".$tomemberid."' AND recieverid='".$memberid."'";
现在$memberid 和$tomemberid 都是整数。这是我执行时的错误:
'where 子句'中的未知列'requesterid='6''
SQL:
SELECT * FROM (`friendships`) WHERE `requesterid='6'` AND
recieverid='5' OR requesterid='5' AND recieverid='6'
为什么 MySQL 在数字 6 后添加撇号?我打印出$memberid 并且在它之后/之前没有显示任何撇号或其他任何内容。我做错了什么?
【问题讨论】:
-
对于它的价值,我认为它没有添加撇号 - 它打印出来的错误消息被包裹在撇号中,所以最外面的一对来自错误消息,而里面的一对是那些缠绕在 6 周围的。
-
用括号分割你的 AND/OR 语句将改进/纠正逻辑并阐明你的意图。您在下面的 cmets 中提到变量来自查询参数……确保对它们进行清理!
标签: php mysql codeigniter activerecord where