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

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

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

Fatal error: Class 'Symfony\Component\HttpKernel\Exception\FlattenException' not found in /var/www/test/mikroskil/mikroweb/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php on line 56 Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in [no active file]:0 Stack trace: #0 [internal function]: PDO->__sleep() #1 [internal function]: session_write_close() #2 {main} thrown in [no active file] on line 0


太令人沮丧了。任何人都可以帮助我吗?刷新页面时突然出现

注意: 我之前有一个错误。 我使用带有 POST 方法的表单。然后我在上面放了一个session。 之后,我得到了这个错误。

failed to start the session: already started by php ($_session is set).


我试图修复该错误。但是突然页面显示此错误

Fatal error: Class 'Symfony\Component\HttpKernel\Exception\FlattenException' not found in /var/www/test/mikroskil/mikroweb/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php on line 56 Fatal error: Uncaught exception 'PDOException' with message 'You cannot serialize or unserialize PDO instances' in [no active file]:0 Stack trace: #0 [internal function]: PDO->__sleep() #1 [internal function]: session_write_close() #2 {main} thrown in [no active file] on line 0

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

:)

我也遇到了这个问题,但是阅读这个问题,尤其是 zerkms 的回复帮助我找到了代码中的问题。清除缓存不是解决问题的合适方法!最近重新改造了我的 类 以使用依赖注入 (?),将它们存储为会话变量不再合适。

我在使用 Medoo PHP 框架时遇到了同样的错误,我意识到你不能编码(序列化)一个 PDOStatement 实例

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

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

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