我已经用谷歌搜索并阅读了很多关于如何使用 PDO 在 mysql 中创建搜索的信息,但是我尝试为自己创建一个搜索仍然没有成功。
我在表中的两个字段中搜索同一组关键字。
$str = explode(' ','app ban');
$p_id = 5;
$search_term = '';
$stmt = $db->prepare('SELECT id from the_table WHERE p_id=:p_id AND (name LIKE :search_term1 OR text LIKE :search_term2)');
$stmt->bindValue(':p_id',$p_id, PDO::PARAM_INT);
$stmt->bindValue(':search_term1',$search_term, PDO::PARAM_STR);
$stmt->bindValue(':search_term2',$search_term, PDO::PARAM_STR);
foreach($str as $key => $value)
{
$search_term = '%'.$value.'%';
$stmt->execute();
while($row = $stmt->fetchObject())
{
if(!isset($res[$row->id]))
$res[$row->id] = 0;
$res[$row->id] = $res[$row->id] + 1*strlen($value);
}
}
print_r($res);
即使我在名称和文本的几个字段中都有字符串“app”和“ban”,这也会给出一个空结果。当我在 phpmyadmin 中进行相同的搜索时,我得到了很多结果。
我尝试在关键字周围添加一些引号:'"%'.$value'%"'; 没有成功。我觉得我别无选择。请帮忙!