bind_param()을 사용한 동적 변수 바인딩
bind_param()에 대해 가변 개수의 입력 변수를 사용하여 작업할 때 빈 값을 처리하는 것은 도전. 빈 $_POST 값으로 인해 자리 표시자 문자열에 "..."를 사용하는 것이 불가능할 수 있습니다.
이 문제에 대한 해결책은 call_user_func_array()를 사용하여 가변 개수의 인수를 바인딩_param에 전달하는 것입니다. () 메서드:
<code class="php">$parameterNames = array('myvar1', 'myvar2', /* ... */); $parameters = array(); foreach ($parameterNames as $name) { if (isset($_POST[$name]) && $_POST[$name] != '') { $parameters[$name] = $_POST[$name]; } } if (count($parameters)) { $query = 'UPDATE mytable SET '; foreach ($parameters as $name => $value) { $query .= $name.'=?,'; } $query = substr($query, 0, -1); // Remove trailing comma $query .= 'WHERE id = ?'; $statement = $mysqli->prepare($query); $typeString = str_repeat('s', count($parameters)); $parameters = array_merge(array($typeString), array_values($parameters)); call_user_func_array(array($statement, 'bind_param'), $parameters); }</code>
이 접근 방식을 사용하면 사용 가능한 $_POST 값을 기반으로 SQL 쿼리를 동적으로 생성하여 비어 있지 않은 값만 업데이트 문에 포함되도록 할 수 있습니다.
위 내용은 PHP에서 빈 값을 처리할 때 `bind_param()`을 사용하여 매개변수를 동적으로 바인딩하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!