2016-07-27 4 views
2

Я получаю сообщение о невозможности сериализации экземпляра PDO, но я понятия не имею, что это значит, а googling не помог мне понять. Я построить PostgreSQL «ON КОНФЛИКТА» типа заявления, а затем я:Невозможно сериализовать с PDO

Internal Server Error: You cannot serialize or unserialize PDOStatement instances

$db = new PDO(...); 
$db->query("SET NAMES 'utf8'"); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = 'INSERT INTO ... ON CONFLICT ... DO UPDATE ...'; 
$params = array_merge(array1, array2); 
$st = $db->prepare($query); 
$st->execute($params); 

ответ

0

Я хотел бы сделать это так InstEd не на конфликт, вставить .... на дубликат ключа обновления ... если я правильно поняли проблему.

+0

Нет, это UPSERT, что postgres встроенный в язык. Но проблема не в том, что SQL недействителен, это ошибка самого PDO в том, что он не может сериализовать его. – Gargoyle

1

ОК, я просто понял это. Я ошибочно делал возврат вызова execute, и поэтому он пытался его сериализовать. Удаление возврата исправило мою проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^