2013-07-14 97 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上使用此代碼,請注意,如果配置不正確,許多其他項目都可能會對相同的會話進行轉發。 –

相關問題