【发布时间】:2017-02-27 13:51:33
【问题描述】:
我有以下代码:
// Connect to DB
$mysqli = new mysqli( $host, $user, $password, $database );
if( ! $mysqli )
{
echo "Unable to connect to database\n";
exit(1);
}
如果提供的密码或主机名/地址无效,则无论如何都会实例化 mysqli 对象。 ! $mysqli 被评估为false,因此未检测到连接失败。
如果我检查$mysqli->error,我不会收到任何错误。
发生的情况是 PHP(我在命令行中使用 PHP 5.6)正在发出警告。然后失败的是第一次查询或任何其他使用(失败的)连接进行操作的尝试。
抑制警告并将连接失败捕获到代码中的最佳方法是什么?
【问题讨论】:
-
您应该能够使用 mysqli::$connect_error 和 mysqli::$connect_errno 来获取有关连接错误的详细信息:php.net/manual/en/mysqli.connect-error.php
-
你将如何处理这个捕获的连接失败?
-
@YourCommonSense 在我的 CLI 脚本的情况下,会回显一条错误消息并退出。如果它是一个 Web 应用程序,我会将客户端重定向到带有适当消息的页面。
-
那么,实际上你想要的只是在你已经拥有的警告中添加一个 die 调用?
-
@YourCommonSense 是的,我想在那里停止执行。这没有意义吗?
标签: php mysql mysqli database-connection