delef
@delef
Разработчик (Crystal, Python, Ruby, PHP, JS)

Как победить ошибку PostgreSQL prepared statement?

Не могу понять, как победить данную ошибку, кто сталкивался, подскажите..

STATEMENT:  DEALLOCATE pdo_stmt_00000001
2017-10-20 09:36:45.379 UTC [30435] user@dbname ERROR:  prepared statement "pdo_stmt_00000001" does not exist
2017-10-20 09:36:45.379 UTC [30435] user@dbname STATEMENT:  DEALLOCATE pdo_stmt_00000001
2017-10-20 09:36:45.382 UTC [30435] user@dbname ERROR:  prepared statement "pdo_stmt_00000001" already exists
2017-10-20 09:36:45.382 UTC [30435] user@dbname STATEMENT:  SELECT * FROM sessions WHERE token = $1 LIMIT 1;
  • Вопрос задан
  • 4283 просмотра
Решения вопроса 1
delef
@delef Автор вопроса
Разработчик (Crystal, Python, Ruby, PHP, JS)
Как подсказал Melkij, pgbouncer не поддерживает серверные prepared statements в transaction-mode. Поэтому просто включаем эмуляцию внутри PDO.

$pdo = new \PDO(PG_DSN, PG_USER, PG_PASSWORD);
$pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, true);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы