如何在MySQL数据库连接中使用抛出异常

11

我遇到了这个问题:

PHP错误处理:die() Vs trigger_error() Vs throw Exception

并且我明白了抛出异常更好。

我该如何在这段代码中替换die,并使用抛出异常的方式?

<?php
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
$hostname_db = "localhost";
$database_db = "database";
$username_db = "root";
$password_db = "password";
$db = mysqli_connect($hostname_db, $username_db, $password_db) or die("Unable to connect with Database"); 
?>

我也在问自己同样的问题。感谢您发布这个问题 :) - James P.
2个回答

16
try
{
    if ($db = mysqli_connect($hostname_db, $username_db, $password_db))
    {
        //do something
    }
    else
    {
        throw new Exception('Unable to connect');
    }
}
catch(Exception $e)
{
    echo $e->getMessage();
}

我需要用你的代码替换die("Unable to connect with Database");?另外,你能告诉我@$_POST['variable']是什么吗? - Django Anonymous
2
你应该用这行代码替换你的最后一行。@ - 启用了静默模式,不会输出错误信息,但仍会记录在服务器的 error.log 文件中。我猜你知道 $_POST['variable'] 是什么意思。 - slash197
是的,我知道......谢谢你提供这个信息 :) - Django Anonymous
还有一件事,由于我已经将代码添加到一个用于数据库连接的include_db文件中...所以在“//do something”区域中我应该放什么,因为它只需要连接或显示错误... - Django Anonymous
测试一下,我不确定它是否能正常工作。但我可以肯定的是,如果没有错误,mysqli_connect函数将会被执行两次。 - slash197
显示剩余4条评论

3

1
$db = mysqli_connect($hostname_db, $username_db, $password_db); if (mysqli_connect_errno()) { throw new RuntimeException("连接失败:%s\n", mysqli_connect_error()); } - Django Anonymous

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接