@svilkov87

Почему не биндятся параметы PDO?

Здравствуйте!

В $art_string лежат данные: string(10) "963,963,70"

Я пытаюсь выбрать из таблицы article только id, которые соответствуют данным из $art_string:

$stm = $pdo->prepare('SELECT `id` FROM `article` WHERE id=:id');
    $stm->bindParam(':id', $art_string, PDO::PARAM_INT);
    $art_id = $stm->fetchAll();


Возвращается пустой массив:

echo "<pre>";
var_dump($art_id);
echo "</pre>";

array(0) {
}

Хотя в таблице article есть id, которые соответствуют данным из $art_string.

В чем может быть проблема?
Спасибо.
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
А смотрели какой запрос уходит в базу данных?
Ибо у вас изначально запрос неправильно составлен. Вы передаёте параметры через запятую. В одно условие. Естественно он не найдёт идентификатор такого вида: 963,963,70.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
NeLexa
@NeLexa
Используйте IN

$ids     = [963, 963, 70];
$inQuery = implode(',', array_fill(0, count($ids), '?'));

$stmt = $db->prepare('
SELECT `id` FROM `article` WHERE id IN(' . $inQuery . ')
');

foreach ($ids as $k => $id)
    $stmt->bindValue(($k+1), $id, \PDO::PARAM_INT);

$stmt->execute();
$allResult = $stmt->fetchAll();
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
нужно execute сделать
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 19:58
2500 руб./в час
27 апр. 2024, в 19:48
10000 руб./за проект