【问题标题】:Laravel SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-preparedLaravel SQLSTATE[HY000]:一般错误:1615 Prepared statement需要重新准备
【发布时间】:2014-08-04 17:01:45
【问题描述】:

我最近启动了基于 Laravel 的网站,我没有遇到任何问题,但 40 分钟前我检查它时收到此错误:

SQLSTATE[HY000]: General error: 1615 Prepared statement needs to be re-prepared (SQL: select * from `users` where `id` = 1 and `remember_token` = mfjLlbv3fR49TYGAqmUgBSqVVAKmoHhq26ws8rojuXxee5qWcvHrcdoTXs6W limit 1) 

为什么会这样?一切都很好,现在我突然什么都做不了了。

【问题讨论】:

  • 你更新作曲家了吗?
  • 未引用 remember_token 与之比较的值。
  • 我删除了会话,现在错误消失了,但现在它为电子邮件抛出了同样的错误,不,我没有作曲家更新

标签: php mysql database error-handling laravel-4


【解决方案1】:

当 mysqldump 正在进行时会发生此错误。正在进行哪个数据库转储并不重要。等待转储完成,此错误将消失。

问题在于表定义被转储导致此错误。

干杯,

苏伦

【讨论】:

  • 如果我没有正在进行的转储,而是在针对视图运行查询时收到此错误?请详细说明您的答案,因为它似乎只涵盖了一种可能的情况,并且“等待它”是一个有点宽泛的建议
【解决方案2】:

似乎可以添加

'options'   => [
                \PDO::ATTR_EMULATE_PREPARES => true
            ]

在数据库配置中的 projectName/config/database.php 文件中。会是这样的:

'mysql' => [
    'driver'    => 'mysql',
    'host'      => env('DB_HOST', 'localhost'),
    'database'  => env('DB_DATABASE', 'forge'),
    'username'  => env('DB_USERNAME', 'forge'),
    'password'  => env('DB_PASSWORD', ''),
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
    'strict'    => false,
    'options'   => [
        \PDO::ATTR_EMULATE_PREPARES => true
    ]
],

Laravel 5.1。希望对您有所帮助!

【讨论】:

    【解决方案3】:

    你好,我得到了同样的错误,几次刷新后就消失了。也许mysqldump是问题的根源。

    当我登录时mysqldump没有运行,但可能已经完成,因为当我刷新时没有错误

    【讨论】:

      猜你喜欢
      • 2015-11-04
      • 2014-11-10
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 2012-10-24
      • 2020-05-26
      • 1970-01-01
      相关资源
      最近更新 更多