ref*_*med 5 php database mysqli try-catch connect
如果,例如,对于下面给定的代码,数据库名称无效,如何防止连接错误?
$mysql = new mysqli('localhost', 'user', 'pass', 'wrongdatabase');
if($mysql->connect_errno)
die($mysql->connect_error);
Run Code Online (Sandbox Code Playgroud)
if语句将输出正确的错误消息,但仍然会从第一行发送警告,其中说明
Warning: mysqli::mysqli() [<a href='mysqli.mysqli'>mysqli.mysqli</a>]: (42000/1049): Unknown database 'wrongdatabase' in C:\wamp\www\example.php on line 14
Run Code Online (Sandbox Code Playgroud)
我知道使用PDO你只需将它包装在try/catch块中,但是如何用MySQLi做呢?
我只是@-它.
这是手动错误抑制不是绝对邪恶的少数情况之一.
请注意,您将异常与错误混淆.虽然您也可以捕获它,但是如果您创建简单的自定义错误处理程序,它将从任何错误中抛出异常.
虽然我有一种感觉,你错误地采取了异常,作为一种错误抑制功能.无论如何,你永远不应该因为错误而死.至少做到这一点
@$mysql = new mysqli('localhost', 'user', 'pass', 'wrongdatabase');
if($mysql->connect_errno) trigger_error($mysql->connect_error,E_USER_ERROR);
Run Code Online (Sandbox Code Playgroud)
这是一个必须要做的错误控制.
在具有合理设置的实时服务器上,它将记录错误,而不是将其直接吐出到用户并发送适当的HTTP标头.虽然最好有一个自定义错误处理程序来处理这种错误更灵活的方式
| 归档时间: |
|
| 查看次数: |
4806 次 |
| 最近记录: |