【发布时间】:2018-10-25 06:40:18
【问题描述】:
我想在mysql数据库中搜索。我希望为搜索发送的搜索在表的 2 列中进行搜索。但我没有得到这段代码的结果。
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array('%'.$Gelen.'%'));
while($Liste = $Ara->fetchAll(PDO::FETCH_ASSOC)){;
$toplam_icerik = $Ara->rowCount();
}
问题出在哪里?
【问题讨论】:
-
您需要在数组中为查询中的每个参数设置一个值。你有两个参数,只有一个值。尝试将
$Ara->execute(array('%'.$Gelen.'%'));更改为$Ara->execute(array('%'.$Gelen.'%', '%'.$Gelen.'%')); -
试试这个
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE :first OR urun_kodu LIKE :second)"); $Ara->bindValue(':first', '%' . $Gelen . '%', PDO::PARAM_STR);$Ara->bindValue(':second', '%' . $Gelen . '%', PDO::PARAM_STR); $Ara->execute(); $data = $Ara->fetchAll();