如何确保多个mysql查询成功执行
我有大约6个查询需要成功执行。现在我使用mysqli\u query函数来执行所有查询。如何确保所有查询都成功执行?我尝试了一种“尝试捕捉”的方法,但它不起作用如何确保多个mysql查询成功执行,mysql,sql,mysqli,Mysql,Sql,Mysqli,我有大约6个查询需要成功执行。现在我使用mysqli\u query函数来执行所有查询。如何确保所有查询都成功执行?我尝试了一种“尝试捕捉”的方法,但它不起作用 mysqli_query($connection,start) try{ mysqli_query($connction,query1) mysqli_query($connction,query2) mysqli_query($connction,query3)
mysqli_query($connection,start)
try{
mysqli_query($connction,query1)
mysqli_query($connction,query2)
mysqli_query($connction,query3)
mysqli_query($connction,query4)
mysqli_query($connection,commit)
}catch($e){
mysqli_query($connection,ROLLBACK)
}
这个查询有什么问题?有更好的方法吗?您只需先混淆mysqli即可抛出异常。给你:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
默认情况下,
mysqli\u查询
返回false
,但在查询失败时不会抛出异常
如果不使用异常模式,则需要检查返回值
例如:
您使用的
mysqli\u query
函数不会引发异常,您可以捕获!
如果出现问题,它将返回false。
因此,您可以执行以下操作:
if (mysqli_query($connction,query) === false) {
// Check the error message and do rollback
}
如果您使用的是mysqli php函数,那么您可以像在MySQL中一样使用set auto commit、commit和roll back 例如
/* disable autocommit */
$mysqli->autocommit(FALSE);
//execute your code
/* commit insert */
$mysqli->commit()
如果要回滚,请使用
/* Rollback */
$mysqli->rollback();
你有没有读过关于
mysqli
扩展的文章?@zerkms请不要这么严格:)我花了一些时间才开始讨论这个问题,因为文档非常模糊。在这里,我认为mysqli不会有这个功能;-)这很好,但是这和问题有什么关系呢?
/* Rollback */
$mysqli->rollback();