PDOException: Sie können nicht serialisiert oder unserialize PDO-Instanzen
Versuchte ich cache meine Benutzer-Objekt in PHP mit memcache, aber ich bekomme ein Fehler bei der Verwendung von PDO. Ich habe ein __sleep und __wakeup Funktion.
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') gibt ein pdo-Objekt...
Gibt die folgende Fehlermeldung zurück:
PDOException: Sie können nicht serialisiert oder unserialize PDO-Instanzen in /var/www/test/User.php auf der Linie 41
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es wahrscheinlich, dass
$this->db
ist ein PDO-Objekt. PDO-Objekte können nicht serialisiert werden.Entfernen Sie das Objekt auf
__sleep()
und fügen Sie es zurück an__wakeup()
(was Sie bereits tun, in den späteren Fall):Kann man nicht serialisieren Objekte, die nicht serialisiert werden. Aber Sie versuchte, so hast du die Ausnahme. Das ist im Grunde das ganze Problem. Einfach nicht sagen, PHP Objekte serialisieren, die nicht serialisiert werden.