Почему этот код не работает? MySQL как проблема

Я хочу искать в базе данных 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();
}

в чем проблема?

0

Решение

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

$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

Другие решения

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

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

Включите 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
По вопросам рекламы [email protected]