为什么此代码失败? mysql之类的问题

时间:2018-10-25 06:40:18

标签: php mysql sql-like

我想在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();
}

问题出在哪里?

3 个答案:

答案 0 :(得分:1)

尝试此操作,需要传递两个值

$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array('%'.$Gelen.'%','%'.$Gelen.'%'));
while($Liste = $Ara->fetchAll(PDO::FETCH_ASSOC)){;
     $toplam_icerik = $Ara->rowCount();
}

答案 1 :(得分:1)

您在查询中使用两个占位符,但仅传递一个参数。 您必须传递两个参数,例如:

$keyword = '%'.$Gelen.'%';
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE ? OR urun_kodu LIKE ?)");
$Ara->execute(array($keyword, $keyword));

,或者您可以使用命名的占位符。例如:

$keyword = '%'.$Gelen.'%';
$Ara = $db->prepare("SELECT * FROM urun_bilgileri WHERE (urun_adi LIKE :urun_adi OR urun_kodu LIKE :urun_kodu)");
$Ara->execute(array(':urun_adi' => $keyword, ':urun_kodu =>$keyword));

答案 2 :(得分:0)

启用PHP错误报告和P​​DO错误报告比PHP在错误消息中告诉您的要多。

error_reporting(-1);
ini_set('display_errors', true);

http://php.net/manual/de/pdo.error-handling.php