无法在数据库中搜索 _或_ 2字段,
下面是我的代码,我之前在其他项目中使用过,但现在如果我在两个字段中为搜索关键字设置这样,它只能搜索第二个字段,我无法理解为什么?如何解决这个问题让它发挥作用?
感谢。
php
$keyword = mysql_real_escape_string($_POST['keyword']);
$sql = "select * from $table where subject or content like '%$keyword%';";
$query = mysql_query($sql);
while($list = mysql_fetch_array($query)){
$id = $list[id];
$subject = $list[subject];
$content = $list[content];
}
mysql
id mediumint(6) AUTO_INCREMENT INDEX
subject text utf8_unicode_ci
content longtext utf8_unicode_ci PRIMARY UNIQUE INDEX
答案 0 :(得分:6)
应该是
select *
from $table
where subject like '%$keyword%' or
content like '%$keyword%'
作为旁注,如果值( s )来自外部,则查询容易被SQL Injection
攻击。请查看下面的文章,了解如何防止它。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。
答案 1 :(得分:2)
where subject like '%$keyword1%' or
content like '%$keyword2%'