Php 检查mysqli查询是否成功的正确方法
我读过几篇关于这个问题的文章,但是没有一篇对我有帮助,我有点困惑该怎么办 基本上,我想检查sql查询是否在没有任何错误的情况下执行。要做到这一点,我是否必须同时使用下面显示的Php 检查mysqli查询是否成功的正确方法,php,database,mysqli,prepared-statement,Php,Database,Mysqli,Prepared Statement,我读过几篇关于这个问题的文章,但是没有一篇对我有帮助,我有点困惑该怎么办 基本上,我想检查sql查询是否在没有任何错误的情况下执行。要做到这一点,我是否必须同时使用下面显示的if语句 if($stmt = $mysqli->prepare("INSERT INTO table VALUES (?, ?, ?);")) { $stmt->bind_param("sss", $a, $b, $c); if(!$stmt->execute()) {
if
语句
if($stmt = $mysqli->prepare("INSERT INTO table VALUES (?, ?, ?);"))
{
$stmt->bind_param("sss", $a, $b, $c);
if(!$stmt->execute())
{
// Do I have to catch the problem here?
}
if($stmt->affected_rows === -1){
// Do I have to catch the problem here?
}
$stmt->close();
}
else
{
// Do I need to catch the problem here?
}
您应该检查
prepare()
、bind_param()
和execute()
的返回值。如果失败,它们都返回false
如果execute()
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
把这条线放在mysqli connect上面。这就是你所需要的
要向用户通知问题,请检查AJAX请求的响应状态。如果是500-则“保存”有问题。为什么要检查结果?您将如何处理它?我只需要知道是否保存了数据(在本例中),如果不是因为发生了什么事情,我需要知道并通知用户此问题…如果您的问题不是mysqli,而是内存,该怎么办?要再写一封通知信吗?那个么文件系统错误,被零除,缺少变量呢?可能并没有,但一件事是缺少var,被零除,当用户丢失数据时*当然,如果我们讨论的是计算器,我会写一个除法为零的通知程序。。。其他事情也一样…你不明白。除零将导致与mysql失败相同的数据丢失。你必须以同样的方式处理所有错误,不仅仅是你知道的错误。谢谢,但我还有一个问题。如果这对我来说是不够的,我想做一些报告,我的意思是,例如,给我自己发一封关于特定错误的邮件。在这种情况下,哪种选择最好?你能提供一个真实的案例吗?所以我可以告诉你们最合适的选择。在一个特定的mysql错误的情况下发送电子邮件对我来说太人工了。如果在某个块中发生了错误(当前包含评论,如您所见),我想从该位置发送电子邮件或重定向到另一个网站。现在我在想什么是最好的方法。我必须捕获这些地方所有可能出现的错误,还是使用try{}catch(){}?你处理异常的想法是错误的。出于某种原因,你坚持使用最不方便、最不可靠的方法。你甚至没有一个实际的案例来证明你的想法。但我不会支持不好的做法,所以,请不要问我。更确切地说,如果我想做这样的事情(它不必专门发送邮件,它可以是完全不同的事情)。在每个mysql查询中都这样做可以吗?mysql_report()对于AJAX来说是可以的,但是如果mysql_report()对于其他应用程序来说并不足够呢。。。