我在PHP中将脚本从MySQL升级到MySQLi扩展。 代码如下:
array_map('mysqli_query', $sqls);
而且,我在那里遇到了一个错误的错误。
Warning: mysqli_query() expects at least 2 parameters, 1 given in file.php on line __
$ sqls是一个有效SQL字符串数组。 mysqli_需要提供$连接。 但是可以使用相同的 array_map 运行吗?
答案 0 :(得分:0)
是的,你可以。 array_map
可以传递多个参数,每个参数都是一个数组,其中包含您需要传递给回调函数的值。因此,在这种情况下,您需要一个连接数组和一个sqls数组。
您可以使用array_fill
创建一个包含相同连接副本的数组(对于对象,只复制引用,因此您不会与数据库建立多个实际连接。)
然后,这应该有效:
<?php
$connections = array_fill(0, count($sqls), $connection);
array_map('mysqli_query', $connections, $sqls);
为了使它更容易理解,我将其包装在一个函数中。
function mysqli_query_multiple($connection, $sqls)
{
$connections = array_fill(0, count($sqls), $connection);
array_map('mysqli_query', $connections, $sqls);
}
或者使用for循环可能同样简单易读。