我从不使用PDO序列化或未实现。但是我收到了这个错误:'你不能序列化或反序列化PDO实例'

时间:2015-01-06 08:15:32

标签: php symfony serialization pdo fatal-error

我从不在我的项目中使用PDO,特别是序列化和反序列化。但我得到了这个错误。

  

致命错误:类   '找不到'Symfony \ Component \ HttpKernel \ Exception \ FlattenException'   /var/www/test/mikroskil/mikroweb/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php   第56行致命错误:带消息的未捕获异常'PDOException'   '您无法在[无活动状态]中序列化或反序列化PDO实例   文件]:0堆栈跟踪:#0 [内部功能]:PDO-> __ sleep()#1   [内部函数]:session_write_close()#2 {main}抛出[no   第0行的活动文件


这太令人沮丧了。有人可以帮帮我吗?当我刷新页面时,它突然出现。

注意: 我之前有错误。 我使用POST方法的表单。然后我就此开了一个会议。 之后,我收到了这个错误。

  

无法启动会话:已经由php启动($ _session是   设定)。


我试图解决这个错误。但突然页面显示此错误

  

致命错误:类   '找不到'Symfony \ Component \ HttpKernel \ Exception \ FlattenException'   /var/www/test/mikroskil/mikroweb/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php   第56行致命错误:带消息的未捕获异常'PDOException'   '您无法在[无活动状态]中序列化或反序列化PDO实例   文件]:0堆栈跟踪:#0 [内部功能]:PDO-> __ sleep()#1   [内部函数]:session_write_close()#2 {main}抛出[no   第0行的活动文件

4 个答案:

答案 0 :(得分:0)

我最近遇到了这个问题,问题是我将模型存储在会话中(内部具有活动的pdo连接),并且在请求完成后,php自动尝试将$ _SESSION存储序列化到tmp文件上。

主要问题是PDO连接无法序列化。如果遇到此问题,则需要检查在哪里将任何对象包含pdo连接序列化。

答案 1 :(得分:-1)

我也得到了这个,但是阅读这个问题,特别是,zerkms响应帮助我找到了我的代码中的问题。清除一个缓存不是对问题的适当回应!最近我重新使用了依赖注入(?),将它们存储为会话变量已不再合适。

答案 2 :(得分:-1)

使用Medoo PHP Framework时出现了同样的错误,我意识到你无法对PDOStatement实例进行编码(序列化)

在我的情况下,我使用 PHP json_encode 对要发送到我的应用程序的数据进行编码,部分数据包含 PDOStatement实例 - 执行数据库操作后返回的数据。我刚刚从我的数据中删除了PDOStatement实例,一切正常。

答案 3 :(得分:-2)

我找到了这个答案。 您只需在浏览器上清除Cookies即可。 也许之前的错误已经创建了一个cookie而无法取代它。 我尝试清除所有浏览器cookie并成功!

:)