为什么这段代码失败了?mysql类问题

iqxoj9l9  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(288)

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

问题出在哪里?

jljoyd4f

jljoyd4f1#

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

$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));
ffx8fchx

ffx8fchx2#

试试这个,需要传递两个值

$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();
}
6yt4nkrj

6yt4nkrj3#

启用php错误报告和pdo错误报告,php会在错误消息中告诉您这一点。

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

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

相关问题