防止 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()
致命错误:未捕获的错误:调用 C:\xampp\htdocs\ 中未定义的函数 mysql_connect()