我有:
$sql = mysql_query("select * from articles where articletitle OR articledescription OR articletags like '%$term%'");
它不返回任何结果。
我在这里使用 OR 不正确吗?
谢谢
您需要将 LIKE 添加到所有三个子句:
SELECT * FROM articles WHERE (articletitle LIKE '%$term%') OR (articledescription LIKE '%$term%') OR (articletags LIKE '%$term%');
不..您每次都需要使用类似'...'
$sql = mysql_query("select * from articles where articletitle like '%$term%' OR
articledescription like '%$term%' OR articletags like '%$term%'");
是的。:-) 你使用不正确。
select * from articles where (articletitle like '%$term%')
OR (articledescription like '%$term%') OR (articletags like '%$term%')
顺便说一句,如果 $term 恰好是(减去双引号)“';DELETE FROMarticles;--”,会发生什么?(如果您的原始查询有这样的单引号,请在单引号后添加一个结束括号。)我建议您依赖一些类似 sprintf 的工具(在 PHP 中,这通常意味着您需要准备好的语句),而不是被称为魔术引号的已弃用错误功能。