2
foreach
루프를 사용하여 매개 변수 유형 및 매개 변수 값을 데이터베이스에 삽입하기 전에 array
으로 채 웁니다. 모든게 잘 작동하고 DB에 게시하지만, 그들은 (참조로) array
에 추가 될 때 두 값을 동일하게 보내는 이유를 알 수 없습니다. 나는 unset();
을 호출하는 것을 피곤하지만 트릭을하지는 않는다.call_user_func_array에 대한 foreach 루프 채우기 배열
function insertUsers($db, $sql, $vals){
$stmt= $db->prepare($sql);
$types='';
$types= $types ?: str_repeat("s", count($vals));
$inputArray [] = &$types;
foreach($vals as $key=>$value){
$inputArray[]= &$value;
unset($key);
}
print_r($inputArray);
call_user_func_array(array($stmt, 'bind_param'), $inputArray);
$stmt->execute();
$stmt->close();
}
결과는 존재 종료 :
당신은foreach()
내부 거기에서
&
를 제거해야
Array
(
[0] => ss
[1] => tyuty (note this value changes to the last value)
[2] => tyuty
)
참조를 사용하여 함수를 호출 한 위치에 결과를 전달하려면 모든 단계에서 '&'를 사용해야합니다. 나는. 'insertUsers ($ db, $ sql, & $ vals)','foreach ($ val = as & $ value)'를 사용합니다. – jh1711