>백엔드 개발 >PHP 튜토리얼 >PHP에서 빈 값을 처리할 때 `bind_param()`을 사용하여 매개변수를 동적으로 바인딩하는 방법은 무엇입니까?

PHP에서 빈 값을 처리할 때 `bind_param()`을 사용하여 매개변수를 동적으로 바인딩하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 09:17:02732검색

How to Dynamically Bind Parameters with `bind_param()` When Handling Empty Values in PHP?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.