gpt4 book ai didi

php - PHP更优雅的方式处理mysqli错误

转载 作者:行者123 更新时间:2023-12-03 08:00:59 26 4
gpt4 key购买 nike

使用纯PHP代码(而不是框架),有一种更优雅的方式来处理mysqli错误,如下所示:

if (!mysqli_query($con, $sql)) {
# Throw error so we can handle them
echo mysqli_error($con);

# handle a duplicate email
if (strpos(mysqli_error($con), "email_UNIQUE") !== false ) {
$_SESSION["errors_found"] = true;
array_push($_SESSION["error_messages"], "Email given is already registered.");
}

# handle a duplicate username
else if (strpos(mysqli_error($con), "username_UNIQUE") !== false ) {
$_SESSION["errors_found"] = true;
array_push($_SESSION["error_messages"], "Username is already taken.");
}

# handle any other sql query error...
else {
die("Database query error: " . mysqli_error($con));
}
}

最佳答案

首先,我不会将这样的过程称为“处理mysqli错误”,而是“用户输入验证”。
其次,我完全不会以这种方式执行这样的验证。

我一直给人的印象是,根据数据库验证用户输入通常是使用SELECT查询而不是INSERT查询执行的。
它不仅使您的应用程序无错误,而且使它更加灵活,例如可以对基于AJAX的注册进行单独的验证。

至于真正的mysqli错误-您真的必须处理它们,而不仅仅是死亡。
最方便而又简便的方法是引发异常:

if (!mysqli_query($con, $sql)) {
throw new Exception(mysqli_error($con));
}

它将根据站点范围的错误处理设置进行适当处理,并提供无价的跟踪日志。

关于php - PHP更优雅的方式处理mysqli错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799415/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com