Почему этот код не работает?MySQL как проблема - PullRequest
0 голосов
/ 25 октября 2018

Я хочу искать в базе данных 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 голосов
/ 25 октября 2018

В запросе используются два заполнителя, но передается только один параметр.Вы должны передать два параметра, например:

$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));
0 голосов
/ 25 октября 2018

Включите PHP error_reporting и PDO error_reporting, чем PHP сообщит вам об этом в сообщении об ошибке.

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

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

0 голосов
/ 25 октября 2018

попробуйте с этим, нужно передать два значения

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