【问题标题】:Prevent Error on mysql_connect() - Access denied防止 mysql_connect() 上的错误 - 访问被拒绝
【发布时间】:2011-11-21 01:36:57
【问题描述】:

我有这个代码sn-p:

$conn = mysql_connect($host, $usr, $pwd);

当 MySQL 访问被拒绝时,如何防止 PHP 打印错误消息?

我确实需要这种语法,但对我没有用。

我尝试了 $conn = mysql_connect($host, $usr, $pwd) or false;$conn = mysql_connect($host, $usr, $pwd) || false; 以及以下内容:

try {
    $conn = mysql_connect($host, $usr, $pwd);

    if(!$conn) {
        throw new Exception('Failed');
    }
} catch(Exception $e) {
    // ...
}

PHP 总是打印连接失败的错误消息。但我只想返回 false,如果它失败了。

【问题讨论】:

    标签: php mysql error-handling mysql-connect


    【解决方案1】:

    我不知道你为什么要这样做,但是你可以添加一个@ 来抑制 php 错误?

    见:http://php.net/manual/en/language.operators.errorcontrol.php

    【讨论】:

    • 谢谢,就是这样! :) 以前不知道。
    【解决方案2】:

    您不应该在 PHP 5 中真正使用 mysql_connect,因为它现在已被 mysqli 和 PDO 弃用。

    但是您可以通过在 @ 前面加上前缀来消除 mysql_connect 生成的警告:

    @mysql_connect()

    【讨论】:

      【解决方案3】:

      不应在生产服务器上激活错误打印。考虑更改您的 php.ini 配置以记录错误而不是显示它。

      使用@ 来隐藏错误消息不是一个好的解决方案。

      【讨论】:

      • +1:人们需要停止到处乱扔@。而是正确配置错误级别。
      【解决方案4】:

      @ 抑制错误。并设置错误报告error_reporting(0); 以关闭所有错误。另请查看mysqli

      Docs

      【讨论】:

      • 不要关闭错误报告。相反,您应该在 php.ini 中配置 display_errors 和 log_errors。
      猜你喜欢
      • 2013-09-17
      • 1970-01-01
      • 2017-07-10
      • 2013-06-26
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多