2013-07-14 78 views
0

我使用的是标准的Facebook PHP SDK使用Zend/db和PDO一起,和我得到这个错误:致命错误 - 未捕获PDOException

Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in /home/myproject/public_html/lib/Facebook/Facebook.php:49 Stack trace: #0 [internal function]: PDO->__wakeup() #1 /home/myproject/public_html/lib/Facebook/Facebook.php(49): session_start() #2 /home/myproject/public_html/lib/myproject/Core.php(37): Facebook\Facebook->__construct(Array) #3 /home/myproject/public_html/init.php(29): myproject\Core->__construct(Object(stdClass)) #4 /home/myproject/public_html/post.php(2): require('/home/myproject/pub...') #5 {main} thrown in /home/myproject/public_html/lib/Facebook/Facebook.php on line 49

我使用的PDO,但据我所知,我没有序列化任何PDO对象,并且我甚至没有看到甚至使用PDO的Facebook PHP SDK部分。

我知道这有点含糊,但我查看过所有引用的文件,但找不到问题。有没有人在使用Facebook SDK时看到类似这样的错误?有什么建议可能是什么问题?

回答

1
/home/myproject/public_html/lib/Facebook/Facebook.php(49): session_start() #2 

这意味着您已在您的会话中序列化了PDO对象。您不需要在代码中序列化它,一旦分配给$_SESSION,它将在会话写入时自动序列化。

+0

我会仔细检查,但我很确定我没有将任何对象分配给$ _SESSION - 只有数组或字符串。而这个错误似乎源于Facebook.php,它来自Facebook并且我还没有编辑过。来自Facebook的常用图书馆似乎不太可能包含这样的重大错误,所以我必须错过一些东西。 – cfc

+0

好的,等一下 - 这只会在Facebook.php中引发,因为那恰好是会话开始的地方,对吧?我将不得不再次扫描我的代码。一个对象必须得到会话化SOMEWHERE ... – cfc

+0

是的,开始会话后发生错误,它应该出现在任何'session_start()'之后,而不仅仅是这个在facebook sdk中。如果您在h ++ p:// localhost/project上使用此代码,请注意,如果配置不正确,许多其他项目都可能会对相同的会话进行转发。 –

相关问题