小编Rob*_*nes的帖子

PHP Unserialize删除对象属性

我有序列化的代码PDOException,通过网络发送,然后稍后反序列化.当我反序列化它时,该$code属性似乎丢失了.对象的其余部分显示不变.

我的代码是针对PostgreSQL数据库运行的.使用以下DDL:

CREATE TABLE test (
    id INTEGER
);
Run Code Online (Sandbox Code Playgroud)

使用以下代码重现我的问题(替换您自己的PostgeSQL连接值):

<?php

$dsn = "pgsql: dbname=postgres;host=/var/run/postgresql;port=5432";
$user = "postgres";
$password = "";
try
{
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $res = $pdo->exec("INSERT INTO test (id) VALUES (999999999999999)");
}
catch (PDOException $e)
{
    var_dump((array) $e);
    print "\n";
    print $e->getCode();
    print "\n";
    $s = serialize($e);
    print $s;
    print "\n";
    $d = unserialize($s);
    var_dump((array) $d);
    print "\n";
    print $d->getCode();
    print "\n";
    print serialize($e->getCode());
    print "\n";
}

?> …
Run Code Online (Sandbox Code Playgroud)

php serialization pdo exception php-7.1

5
推荐指数
2
解决办法
503
查看次数

标签 统计

exception ×1

pdo ×1

php ×1

php-7.1 ×1

serialization ×1