mysqli bind_param() 오류: 참조 대신 값 전달
"mysqli_stmt::bind_param()에 대한 매개변수 3 오류는 다음과 같습니다. 참조, 값 제공"은 다음과 같은 경우에 발생합니다. mysqli_stmt::bind_param()에는 해당 값에 대한 참조 배열 대신 값 배열이 전달됩니다.
제공된 PDO 코드에서:
$params = array(1,"2","3","4");
$params 배열에는 해당 값에 대한 참조가 아닌 값이 포함되어 있습니다. 이 문제를 해결하려면 &를 사용하여 참조를 생성하세요.
$params = array(1,&"2", &"3", &"4");
마찬가지로 OOP 코드에서:
array_unshift($params, $param_type);
이 줄은 $param_type 문자열 앞에 추가됩니다. $params 배열의 시작 부분에 추가되지만 매개변수 값에 대한 참조는 생성되지 않습니다. 참조를 생성하려면 & 문자를 사용하십시오.
array_unshift($params, $param_type); foreach ($params as $key => $value) { $params[$key] =& $value; }
PHP 버전 5.6 이상에서는 스프레드 연산자(... ) 참조를 수동으로 생성할 필요 없이 $params 배열을 개별 인수로 전달하려면:
mysqli_stmt_bind_param($sql_stmt, $param_type, ...$params); $insert_stmt->bind_param($param_type, ...$params);
참조를 전달하거나 스프레드 연산자를 사용하면 mysqli_stmt::bind_param()이 매개변수 값에 대한 참조 배열을 수신하여 오류를 해결할 수 있습니다.
위 내용은 mysqli_stmt::bind_param()이 '매개변수 ... 참조로 예상되며 값이 지정됨'을 발생시키는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!