Страницы

Поиск по вопросам

четверг, 2 января 2020 г.

PDO ошибка выборки c LIMIT

#php #pdo


Почему выдает ошибку при таком запросе?

getCon()->prepare($sql);
    $stmt->execute($data);
    $stmt->fetchAll();
    var_dump($stmt->fetchAll());


Ошибка вот такого плана: 


  Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax
error or access violation: 1327 Undeclared variable: '1'' in 

    


Ответы

Ответ 1



В режиме эмуляции все переданные через execute() переменные PDO подставляет в запрос как строки, и в итоге запрос получается LIMIT '10', '1' что вызывает ошибку. Самым простым решением будет отключить режим эмуляции сразу после соединения, $conn->setAttribute( PDO::ATTR_EMULATE_PREPARES, false ); и после этого данный код сразу заработает без ошибок.

Комментариев нет:

Отправить комментарий