Вероятно, что $this->db
является объектом PDO. Объекты PDO не могут быть сериализованы.
Удалите этот объект на __sleep()
и добавьте его обратно на __wakeup()
(это то, что вы уже делаете в последнем случае):
public function __sleep()
{
return array();
}
Нельзя сериализовать объекты, которые нельзя сериализовать. Но вы пытались, поэтому вы получили исключение. Это в основном вся проблема. Только не говорите PHP сериализовать объекты, которые нельзя сериализовать.