我正在尝试在我的PHP Web应用程序中捕获数据库(MYSQL)错误。目前,我看到有像mysqli_error()、mysqli_errno()这样的函数可以捕获最后发生的错误。然而,这仍然需要我在php代码中重复使用if/else语句来检查错误是否发生。您可以查看下面的代码以了解我的意思。是否有更好的方法来处理这个问题?还是我应该编写自己的代码来引发异常并在一个单一的地方捕获它们?此外,PDO是否会引发异常?谢谢。
function db_userexists($name, $pwd, &$dbErr)
{
$bUserExists = false;
$uid = 0;
$dbErr = '';
$db = new mysqli(SERVER, USER, PASSWORD, DB);
if (!mysqli_connect_errno())
{
$query = "select uid from user where uname = ? and pwd = ?";
$stmt = $db->prepare($query);
if ($stmt)
{
if ($stmt->bind_param("ss", $name, $pwd))
{
if ($stmt->bind_result($uid))
{
if ($stmt->execute())
{
if ($stmt->fetch())
{
if ($uid)
$bUserExists = true;
}
}
}
}
if (!$bUserExists)
$dbErr = $db->error();
$stmt->close();
}
if (!$bUserExists)
$dbErr = $db->error();
$db->close();
}
else
{
$dbErr = mysqli_connect_error();
}
return $bUserExists;
}