Почему это возвращает одну строку вместо нескольких?

Почему это возвращает одно значение, и когда я запрашиваю базу данных напрямую, я получаю несколько значений?

    $statement = $sql->prepare
('select * from items where user_id = (select id from user where ?=? limit 1)');
$statement->bindParam('s', $property);
$statement->bindParam('s', $value);
$statement->execute();

$data = $statement->fetch(PDO::FETCH_ASSOC);
echo json_encode($data);

-1

Решение

вместо

 $data = $statement->fetch(PDO::FETCH_ASSOC);

пытаться

 $data = $statement->fetchAll(PDO::FETCH_ASSOC);
2

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

У вас есть одна проблема в вашем sql, вы не можете связать столбцы / имена таблиц, вы должны изменить это where ? = ? в where your_columns_name = ? в этой строке:

$statement = $sql->prepare('select * from items where user_id = (select id from user where ?=? limit 1)');

и для получения всех ваших записей используйте:

$data = $statement->fetchAll(PDO::FETCH_ASSOC);
1

По вопросам рекламы [email protected]