防止 mysql_connect() 上的错误 - 访问被拒绝

Posted

技术标签:

【中文标题】防止 mysql_connect() 上的错误 - 访问被拒绝【英文标题】:Prevent Error on mysql_connect() - Access denied 【发布时间】: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,如果它失败了。

【问题讨论】:

【参考方案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。

以上是关于防止 mysql_connect() 上的错误 - 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

雪豹:致命错误:调用未定义函数 mysql_connect()

如何防止重试sidekiq上的某些异常/错误

致命错误:未捕获的错误:调用 C:\xampp\htdocs\ 中未定义的函数 mysql_connect()

尝试访问远程数据库时 mysql_connect 访问被拒绝错误

致命错误:调用未定义函数 mysql_connect()

php mysql_connect连接不上时候,输出错误