PHPでmemcacheを使用してユーザーオブジェクトをキャッシュしようとしましたが、PDOの使用中にエラーが発生しました。私は__sleep関数と__wakeup関数を追加しました。PDOException:PDOインスタンスをシリアル化またはシリアル化解除できません
PDOException: You cannot serialize or unserialize PDO instances in /var/www/test/User.php on line 41
PHPでmemcacheを使用してユーザーオブジェクトをキャッシュしようとしましたが、PDOの使用中にエラーが発生しました。私は__sleep関数と__wakeup関数を追加しました。PDOException:PDOインスタンスをシリアル化またはシリアル化解除できません
PDOException: You cannot serialize or unserialize PDO instances in /var/www/test/User.php on line 41
$this->db
がある可能性が高いです。
User.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オブジェクトを返しますが...
次のエラーを返します。 PDOオブジェクト。 PDOオブジェクトはシリアル化できません。
は__sleep()
にそのオブジェクトを削除し、(すでに後者の場合には何をすべきかである)__wakeup()
に戻って、それを追加します。
public function __sleep()
{
return array();
}
あなたがシリアライズできないオブジェクトをシリアル化することはできません。しかし、あなたが試したので、例外があります。それは基本的に全面的な問題です。シリアライズできないオブジェクトをシリアル化するようPHPに指示しないでください。
ありがとうございました;)完全に機能しました... – MaxiNet