2016-09-22 99 views
0

我需要在现有的一组表和新的/已更改的信息之间进行协调,因此需要定期执行一组约30个UPDATE/INSERT操作每次。由于'mysql_query'现在已被弃用,而且我不希望重新编写OO中的所有内容,是否有一种合理的程序方式可以按顺序运行所有这些内容,而无需在每个单独之后调用“mysqli_free_result()”?使用PHP/MySQLi执行多个UPDATE和INSERT使用PHP/MySQLi执行多个UPDATE和INSERT

只是为了记录,我试着将它们作为一组mysqli_query语句运行,而没有mysqli_free_result(),这是一个混乱:一些操作经过,而其他一些操作失败默默。坦率地说,一个包含'mysql -e'命令的shell脚本更加可靠......但这需要一个Web驱动的应用程序,所以这不再可行。

回答

1

你的假设是错误的。

mysqli_query的行为与mysql_query类似,您不需要任何其他修改。 mysqli_free_result()和你的问题都没有关系。

您的问题唯一有意义的部分是静默失败的查询。为了让他们失败,只要告诉mysqli这样做。在mysqli_connect之前添加此行

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 

并且第一个失败的查询会告诉您原因。

但是通常,使用mysqli_query()运行多个UPDATE和INSERT查询并不存在单一问题。

+0

感谢教育和解决方案!那么,加上在没有'mysqli_multi_query'的单个查询中不使用多个语句就是问题所在。非常感激! –

相关问题