提问人:Kalle 提问时间:10/6/2023 最后编辑:Your Common SenseKalle 更新时间:10/7/2023 访问量:101
php8.2 如何在不打开多个连接的情况下使用execute_query
php8.2 how to use execute_query without opening multiple connections
问:
我从 PHP7.3 跳到 PHP8.2,并寻找一个“multiple_execute_query()”函数,只连接到 mysql 一次并传输一些查询,但使用 execute_query() 以防止 sql 注入。有没有可能在没有循环和多个连接的情况下做到这一点?
答:
2赞
ADyson
10/6/2023
#1
在 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]);
}
评论