0

我有:

$sql = mysql_query("select * from articles where articletitle OR articledescription OR articletags like '%$term%'");

它不返回任何结果。

我在这里使用 OR 不正确吗?

谢谢

4

4 回答 4

2

您需要将 LIKE 添加到所有三个子句:

SELECT * FROM articles WHERE (articletitle LIKE '%$term%') OR (articledescription LIKE '%$term%') OR (articletags LIKE '%$term%');
于 2012-06-05T23:33:07.757 回答
1

不..您每次都需要使用类似'...'

$sql = mysql_query("select * from articles where articletitle like '%$term%' OR 
articledescription like '%$term%' OR articletags like '%$term%'");
于 2012-06-05T23:33:17.637 回答
1

是的。:-) 你使用不正确。

select * from articles where (articletitle like '%$term%') 
OR (articledescription like '%$term%') OR (articletags like '%$term%')
于 2012-06-05T23:33:31.303 回答
0

顺便说一句,如果 $term 恰好是(减去双引号)“';DELETE FROMarticles;--”,会发生什么?(如果您的原始查询有这样的单引号,请在单引号后添加一个结束括号。)我建议您依赖一些类似 sprintf 的工具(在 PHP 中,这通常意味着您需要准备好的语句),而不是被称为魔术引号的已弃用错误功能。

于 2012-06-06T01:25:18.303 回答