use*_*888 -1 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
Run Code Online (Sandbox Code Playgroud)
它应该是
select *
from $table
where subject like '%$keyword%' or
content like '%$keyword%'
Run Code Online (Sandbox Code Playgroud)
作为一个旁注,查询是脆弱的SQL Injection,如果值(小号)从外面走了进来.请查看下面的文章,了解如何防止它.通过使用PreparedStatements,您可以摆脱使用值周围的单引号.