MySQLi에서는 SQL 삽입을 방지하고 성능을 최적화하기 위해 매개변수를 바인딩하는 것이 바람직합니다. 그러나 일부 POST 매개변수가 비어 있으면 별도로 처리해야 합니다.
한 가지 가능한 접근 방식은 call_user_func_array 함수를 사용하여 가변 개수의 인수로 바인딩_param 메서드를 호출하는 것입니다. 이를 통해 비어 있지 않은 값에 대해서만 쿼리 문자열과 바인드 매개변수를 동적으로 구성할 수 있습니다.
예는 다음과 같습니다.
<code class="php">$paramNames = array('myvar1', 'myvar2', /* ... */); $params = array(); foreach ($paramNames as $name) { if (isset($_POST[$name]) && $_POST[$name] != '') { $params[$name] = $_POST[$name]; } } if (count($params)) { $query = 'UPDATE mytable SET '; foreach ($params as $name => $val) { $query .= $name.'=?,'; } $query = substr($query, 0, -1); $query .= 'WHERE id = ?'; $stmt = $mysqli->prepare($query); $params = array_merge(array(str_repeat('s', count($params))), array_values($params)); call_user_func_array(array(&$stmt, 'bind_param'), $params); }</code>
이 코드는 POST 매개변수를 반복하여 매개변수가 유효한지 확인합니다. 비어 있지 않고 설정되어 배열에 추가됩니다. 그런 다음 비어 있지 않은 매개변수로 쿼리 문자열을 동적으로 구축하고 call_user_func_array를 사용하여 값을 바인딩합니다.
빈 POST 매개변수를 별도로 처리하면 MySQLi에서 변수 입력 바인딩을 달성하여 유효한 데이터만 업데이트되도록 할 수 있습니다. 데이터베이스를 사용하고 불필요한 업데이트를 방지합니다. 다양한 입력 조합을 수용할 수 있는 다재다능하고 유연한 솔루션입니다.
위 내용은 빈 POST 매개변수를 사용하여 MySQLi에서 변수 입력 바인딩을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!