我遇到问题。这是大括号的正确位置吗?查询大括号位置
WHERE (Q.qus_title LIKE '%".$search_Q."%' OR Q.qus_description LIKE '%".$search_Q."%')
AND A.qus_id is null
ORDER BY
我遇到问题。这是大括号的正确位置吗?查询大括号位置
WHERE (Q.qus_title LIKE '%".$search_Q."%' OR Q.qus_description LIKE '%".$search_Q."%')
AND A.qus_id is null
ORDER BY
括号中WHERE子句表达式中完全相同的方式作为代码或数学
所以
(COND1和COND2)OR COND3
被评估将需要要么两个 1和2是对的或 3是对的
您的WHERE子句似乎说空缺A.qus_id
和Q.qus_title
或包含您的搜索文本(我希望您的搜索变量已正确转义,因此不能包含撇号的等 - ala SQL注入)条目。
要尝试找出它不工作的原因,请使用NO where子句运行查询并检查您是否得到结果 - 然后继续添加条件,直到找到能够消除太多结果的条件。
谢谢。将继续尝试。顺便说一句, – 2010-12-18 15:57:23
。这是我用来转义字符串的函数......这是否足够? ----功能过滤器($ data){ \t $ data = trim(htmlentities(strip_tags($ data))); \t \t 如果(get_magic_quotes_gpc()) \t \t $数据=的stripslashes($数据); \t \t $ data = mysql_real_escape_string($ data); \t \t return $ data; } – 2010-12-18 15:58:58
@Frank - 我在2-3年内没有完成PHP,所以我的知识可能有点过时,但对我来说这似乎相当全面。 – Basic 2010-12-18 16:03:09
它适合你吗?你想要搜索什么?提供一个更全面的解释什么是或什么没有发生。 – Veign 2010-12-18 15:45:10
不起作用。显示空白。没有错误,这使得它更容易混淆。我在想可能是有语法或逻辑错误。 – 2010-12-18 15:47:49
避免通过静态和动态数据的字符串连接来构建SQL。使用预准备语句和绑定参数(只要您的数据库库支持它们 - 现在大多数都可以)。 – 2010-12-18 16:07:13