【问题标题】:A Database Error Occurred! fixed by db_debug set to false?发生数据库错误!由 db_debug 修复设置为 false?
【发布时间】:2013-05-31 16:33:05
【问题描述】:

您好,我只是想澄清一下我心中的问题。我有一个错误

   Unable to connect to your database server using the provided settings.
   Filename: core/Loader.php
   Line Number: 346

在阅读了有关该错误的一些问题后,我尝试将 $db['default']['db_debug'] = TRUE; 设置为 $db['default']['db_debug'] = FALSE; 并且它有效!

正如我在 CI 数据库配置手册中看到的那样

db_debug - TRUE/FALSE (boolean) - Whether database errors should be displayed.

我想知道这确实解决了问题或隐藏了错误,但如果它只是隐藏它,它是如何工作的?我担心它可能会导致未来的问题。

同样的问题存在here。

任何信息和想法都是很大的帮助,非常感谢。非常感谢!

【问题讨论】:

  • 这是错误还是通知?
  • 您是否尝试检查日志或在$db 上使用var_dump 来查看任何错误消息?您需要消息来诊断和解决问题。
  • @jerin “发生数据库错误无法使用提供的设置连接到您的数据库服务器。”它没有提到,我认为它不是 Apache 错误
  • @steve 我稍后会尝试检查。现在它修复了我只是将调试设置为false,它似乎可以正常工作。
  • 如果功能正常,会是通知或警告。能否将完整内容粘贴到错误消息中?

标签: php mysql codeigniter


【解决方案1】:

它对我有用

$db['default']['pconnect'] = FALSE;

【讨论】:

  • 持久连接的使用与 OP 问题有何关系?
  • 它将禁用Mysql的长连接功能。如果您的托管服务器不支持持久连接,您将收到错误消息。
【解决方案2】:

我找到了原因。在我的情况下,数据库错误是因为我在 php.ini 中的 mysql 配置不正确。

在 php.ini 中设置 mysql 配置后,CI 运行良好,如下所示:

[Mysql]
mysql.default_socket = /tmp/mysql.sock

如果你没有配置php.ini,默认socket是/var/mysql/mysql.sock,请检查一下。

我之前也将 $db['default']['db_debug] 设置为 FALSE,看起来没问题,但没有。 它只是隐藏了mysql配置的错误,当我测试从mysql的表中读取时,我什么也没有,也不知道为什么什么也没有。 于是我调试了一下,发现是因为我的mysql连接没有建立。 :(

【讨论】:

    【解决方案3】:

    尝试将$db['default']['pconnect'] = TRUE;设置为false而不是$db['default']['db_debug'] = TRUE;

    【讨论】:

    • 是的,我可以这样做,但为什么呢?有什么解释吗?
    猜你喜欢
    • 2012-09-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2011-04-10
    相关资源
    最近更新 更多