【问题标题】:Unable to serialize with PDO无法使用 PDO 序列化
【发布时间】:2016-11-30 21:31:53
【问题描述】:

我收到一个关于无法序列化 PDO 实例的错误,但我不知道这意味着什么,并且谷歌搜索并没有帮助我理解。我建立了一个 PostgreSQL 'ON CONFLICT' 类型语句,然后我这样做:

内部服务器错误:您无法序列化或反序列化 PDOStatement 实例

$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);

【问题讨论】:

    标签: postgresql pdo pdostatement


    【解决方案1】:

    好的,我刚刚想通了。我错误地返回了execute 调用,因此它试图序列化它。删除退货解决了我的问题。

    【讨论】:

      【解决方案2】:

      我会这样做,因为冲突,插入....重复键更新...如果我理解正确的问题。

      【讨论】:

      • 不,这是 postgres 内置在语言中的 UPSERT。但问题不在于 SQL 无效,而是 PDO 本身的错误导致无法序列化它。
      猜你喜欢
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多