0

我将一个脚本从 MySQL 升级到 PHP 中的 MySQLi 扩展。代码如下所示:

array_map('mysqli_query', $sqls);

而且,我在那里遇到了一个错误,该错误正在处理过去。

Warning: mysqli_query() expects at least 2 parameters, 1 given in file.php on line __

$sqls 是一个有效的 SQL 字符串数组。mysqli_ 需要提供 $connection。但是仍然可以使用相同的array_map运行吗?

4

1 回答 1

0

是的你可以。array_map可以传递多个参数,每个参数都是一个数组,其中包含您需要传递给回调函数的值。因此,在这种情况下,您需要一个连接数组和一个 sql 数组。

您可以使用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 循环同样简单易读。

于 2014-09-06T09:04:32.010 回答