无法在数据库中搜索___或___ 2字段,只搜索最后一个字段

时间:2013-01-18 17:46:12

标签: php mysql sql select

无法在数据库中搜索 _或_ 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

2 个答案:

答案 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%'