2014-09-06 3 views
0

PHP에서 MySQL에서 MySQLi 확장으로 스크립트를 업그레이드했습니다. 내가 과거에 근무했다가 오류를 만나배열 배열을 가진 mysqli_query

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?

+0

행운을 빌어 요, 지금까지 답을 찾았습니까? – GolezTrol

답변

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 루프를 사용하는 것이 쉽고 읽기 쉽습니다.