-1

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

2 回答 2

6

它应该是

select * 
from   $table
where  subject like '%$keyword%' or 
       content like '%$keyword%'

作为旁注,SQL Injection如果值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用 PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-01-18T17:47:37.220 回答
2

你可以这样使用它

where  subject like '%$keyword1%' or 

        content like '%$keyword2%'
于 2013-01-18T17:50:38.543 回答