php - mysql中的错误处理没有捕获正确的错误
问题描述
我有一个相对简单的 MySQLi 多查询。
查询只是将数据添加到 4 个表。
我现在正在尝试构建一些错误处理,以便在有重复的情况下给我一条消息并提出以下建议:
if ($conn->multi_query($sql) === TRUE) {
echo "Property Added: '$est_name'";
} else if (mysqli_errno() !== 1062) {
print 'Error - Duplicate Entry!';
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
虽然我最初认为它有效,但我很快就发现了“错误 - 重复条目!” 正在捕获所有错误,即使是那些不重复的错误!
接缝发生的另一件事是,如果我故意尝试在 3 个查询语句中的任何一个中导致错误,则在第一个(即错字)之后它会继续查询并且我没有收到任何错误 - 我不确定如果问题是相关的!
如果有重复,我如何构建错误处理?(而且我的查询问题与“错误”无关吗?)
我的查询看起来像:
$sql = "INSERT INTO Table1 (fname, lname) VALUES ('$fname', '$lname');";
$sql .= "SELECT @get_ID := LAST_INSERT_ID();";
$sql .= "INSERT INTO Table2 (id, street_address ) VALUES (@get_ID, '$street_address');";
$sql .= "INSERT INTO Table3 (id, gender) VALUES (@get_ID, '$gender');";
$sql .= "INSERT INTO Table4 (id, rating) VALUES (@get_ID, '$rating');";
解决方案
我的愚蠢错误忘记添加:$conn
,并重新订购了声明。
if ($conn->multi_query($sql) === TRUE) {
echo "Property Added: '$est_name'";
} else if (mysqli_errno($conn) !== 1062) {
print 'Error - Duplicate Entry!';
}
else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
看起来另一个问题但是关于执行查询是无关的,因为我仍然遇到它!
推荐阅读
- docker - Docker swarm 容器连接问题
- c# - 我在制作 RDLC 报告时尝试通过 C# 手动添加数据源时出现错误
- mysql - sqldump 以某种方式查找表而不是完整备份?
- javascript - 一组输入和一个文本区域至少需要一个值
- angular-material - mat-sort-header 未显示
- django - Django 应用部署 digitalocean 卡在 nginx 主页
- excel - IF 单元格 = 特定文本,在另一个单元格中显示分配的数字作为结果
- codeigniter - 在代码点火器中将英语输入转换为乌尔都语和土耳其语
- android - 自定义 EditText 默认光标位置
- php - 准备好的语句 PHP OOP