网站用户使用搜索表单来查询产品的数据库。 关键字输入的搜索标题为产品在数据库中。
public function startSearch($keywords){
$keywords = preg_split('/[\s]+/', $keywords);
$totalKeywords = count($keywords);
foreach($keywords as $key => $keyword){
$search .= '%'.$keyword.'%';
if($key != ($totalKeywords)-1){
$search .= ' AND itemTitle LIKE ';
}
}
$sql=$this->db->prepare("SELECT * FROM prodsTable WHERE itemTitle LIKE ?");
$sql->bindParam(1, $search);
$sql->execute ();
$sql->fetchALL(PDO::FETCH_ASSOC);
搜索工作,如果用户输入一个关键词,但如果使用多个关键字查询不执行。
如果:$关键字= '苹果iPod'; $搜索= '%苹果%和itemTitle LIKE%的ipod%';
所以准备好的语句应该是这样的:
“SELECT * FROM prodsTable WHERE itemTitle LIKE%苹果%和itemTitle LIKE%的ipod%”
没有结果返回时,两款产品应该返回兼具“苹果”和标题的“iPod”。
我究竟做错了什么?