2016-07-27 49 views
2

PDOインスタンスをシリアル化できないというエラーが発生しましたが、これが何を意味するのかわかりません。私は型宣言文「CONFLICT ON」のPostgreSQLを構築して、私が行います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

いいえ、これはpostgresが言語に組み込まれたUPSERTです。しかし、問題はSQLが無効であるということではなく、PDO自体がシリアル化できないというエラーです。 – Gargoyle

1

OK、これを分かりました。私は間違ってexecuteコールの復帰をしていたので、それをシリアル化しようとしていました。返品を削除すると問題が解決しました。

関連する問題