-1

データベースの_または_2フィールドを検索できません。
以下は私のコードで、以前は他のプロジェクトで使用していましたが、2つのフィールドの検索キーワードにこのように設定すると、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 に答える