gpt4 book ai didi

php - PDO异常 : You cannot serialize or unserialize PDO instances

转载 作者:可可西里 更新时间:2023-11-01 12:32:06 27 4
gpt4 key购买 nike

我尝试使用内存缓存在 PHP 中缓存我的用户对象,但在使用 PDO 时出现错误。我添加了一个 __sleep 和一个 __wakeup 函数。

用户.php

/**
* @var PDO
*/
protected $db;

public function __construct()
{
$this->db = getInstanceOf('db');
}

public function __destruct()
{

}

public function __sleep()
{
return array('db');
}

public function __wakeup()
{
$this->db = getInstanceOf('db');
}

getInstanceOf('db') 返回一个 pdo 对象...

返回以下错误:

PDOException: You cannot serialize or unserialize PDO instances in /var/www/test/User.php on line 41

最佳答案

$this->db 很可能是一个 PDO 对象。 PDO 对象不能被序列化。

__sleep() 上删除该对象,然后在 __wakeup() 上将其添加回去(这是您在后一种情况下已经执行的操作):

public function __sleep()
{
return array();
}

不能序列化的对象不能序列化。但是你试过了,所以你得到了异常(exception)。这基本上就是整个问题。只是不要告诉 PHP 序列化无法序列化的对象。

关于php - PDO异常 : You cannot serialize or unserialize PDO instances,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8700702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com