Почему объект 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);
хорошо генерировать ошибку
Неустранимая ошибка PHP: необработанное исключение «PDOException» с сообщением «Вы не можете сериализовать или десериализовать экземпляры PDO» в W: \ workspace \ Sandbox \ application.php: 5 Трассировка стека:
# 0 [внутренняя функция]: PDO -> __ sleep ()
# 1 W: \ workspace \ Sandbox \ application.php (5): сериализация (объект (PDO))
# 2 {main} выбрасывается в W: \ workspace \ Sandbox \ application.php в строке 5