加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

抑制php错误?…为什么?

发布时间:2020-12-13 13:52:15 所属栏目:PHP教程 来源:网络整理
导读:嘿伙计们,我想知道为什么你会“抑制”一个php错误?我明显看到了从错误中吐出的额外线的差异……但抑制它有好处吗? Access denied for user 'user'@'localhost' (using password: YES) VS Warning: mysql_connect() [function.mysql-connect]: Access denie
嘿伙计们,我想知道为什么你会“抑制”一个php错误?我明显看到了从错误中吐出的额外线的差异……但抑制它有好处吗?
Access denied for user 'user'@'localhost' (using password: YES)

VS

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'user'@'localhost'       (using password: YES) in (deleted) on line 8
Access denied for user 'user'@'localhost' (using password: YES)

如果是这样,我应该养成在我的php中的mysql查询开头输入@的习惯吗?

谢谢!

你应该积极地养成抑制错误的习惯.错误是有原因的.相反,在代码中正确和防御地处理它们,并不断完善代码,直到错误消失.

你应该做的事情如下:

$conn = mysql_connect($host,$user,$pass);

// Always test to see if your action/connection/whatever was successful
if (!$conn) {
  // something went wrong.  handle the error
  // Display a message for the user,write a message to `error_log()`,whatever's appropriate
}
else mysql_select_db($dbname);

在生产系统上,您永远不应该显示错误,因为它可能会泄露您的代码和数据库的详细信息.相反,在php.ini或运行时关闭display_errors:

// In development and production,make sure all errors are reported
error_reporting(E_ALL & E_STRICT);

// In development show all errors on screen so you handle them as they occur
ini_set('display_errors',1);

// In production turn them off
ini_set('display_errors',0);

实际上,使用@的错误抑制是PHP糟糕练习in this classic question.的第二大投票

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读