相关疑难解决方法(0)

为什么不能将PDO对象序列化?

我想提出一个多线程的CLI-PHP应用程序和需要序列化PDO object工作之间传递的线程内,并使用魔术方法睡眠线程唤醒它__sleep()__wakeup().然而,PDO或者mysqli扩展不支持它.旧mysql_*()api做了这个,但它已被弃用并删除.

<?php
    // Application
    $link = new PDO('mysql:host=localhost;port=3306;dbname=testdatabase', 'root', '');

    $obj = serialize($link);
Run Code Online (Sandbox Code Playgroud)

很好地产生错误

PHP致命错误:未捕获异常'PDOException',并在W:\ workspace\Sandbox\application.php中显示消息'您无法自定义或反序列化PDO实例':5堆栈跟踪:

#0 [内部函数]:PDO - > __ sleep()

#1 W:\ workspace\Sandbox\application.php(5):serialize(Object(PDO))

在第5行的W:\ workspace\Sandbox\application.php中抛出#2 {main}

php pdo

4
推荐指数
1
解决办法
2763
查看次数

标签 统计

pdo ×1

php ×1