我从 PHP7.3 跳到 PHP8.2,并寻找一个“multiple_execute_query()”函数来仅连接一次到 mysql 并传输一些查询,但使用 execute_query() 来防止 sql 注入。是否有可能在没有循环和多个连接的情况下做到这一点?
mysqli 中没有相当于
multi_query
的东西支持准备好的语句。
但是...运行
execute_query()
不会打开新连接。它使用现有连接,该连接必须已打开。因此,您无需担心多次调用该函数(例如使用循环)。
简单场景:
//$conn is the connection object, which we create once, here. This opens the connection
$conn = new mysqli($host, $user, $password, $db, $port);
for ($i = 0; $i < 10; $i++) {
$j = $i*2;
//here we execute the query many times, but always re-using the same connection object
$conn->execute_query("UPDATE someTable SET someColumn = ? WHERE someOtherColumn = ?", [$j, $i]);
}
我现在明白了。谢谢您的解释!