我从不使用PDO序列化或未实现.但是我收到此错误:“您无法序列化或反序列化PDO实例”


I never use PDO serialize or unrealize. But I got this error: 'You cannot serialize or unserialize PDO instances'

我从不在项目中使用 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} 抛入 [否 活动文件] 在第 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} 抛入 [否 活动文件] 在第 0 行

我最近遇到了这个问题,问题是我将我的模型存储在会话上(里面有活动的 pdo 连接),当请求完成时,php 会自动尝试序列化 $_SESSION 以存储在 tmp 文件上。

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

我找到了这个答案。您只需要在浏览器上清除您的 Cookie。也许以前的错误是创建了cookie并且无法替换它。我尝试清除我所有的浏览器cookie,它成功了!


:)

我在使用 Medoo PHP Framework 时遇到了同样的错误,我意识到您无法编码(序列化)PDOStatement 实例

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

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