php8.2 如何在不打开多个连接的情况下使用execute_query

问题描述 投票:0回答:2

我从 PHP7.3 跳到 PHP8.2,并寻找一个“multiple_execute_query()”函数来仅连接一次到 mysql 并传输一些查询,但使用 execute_query() 来防止 sql 注入。是否有可能在没有循环和多个连接的情况下做到这一点?

php mysqli
2个回答
0
投票

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]);
}

-1
投票

我现在明白了。谢谢您的解释!

© www.soinside.com 2019 - 2024. All rights reserved.