>백엔드 개발 >PHP 튜토리얼 >PHP에서 매개변수를 MySQL 쿼리에 동적으로 바인딩하려면 어떻게 해야 합니까?

PHP에서 매개변수를 MySQL 쿼리에 동적으로 바인딩하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-03 01:00:14987검색

How Can I Dynamically Bind Parameters to MySQL Queries in PHP?

PHP에서 MySQL 매개변수를 동적으로 바인딩

애플리케이션에서 매개변수를 준비된 SQL 쿼리에 동적으로 바인딩해야 하는 시나리오에 직면하게 됩니다. 현재 접근 방식은 작동하지만 특히 다양한 수의 매개변수를 처리할 때 다양성이 부족합니다.

원하는 유연성을 얻으려면 call_user_func_array() 및 압축 해제 연산자(...$를 사용하여 다음 기술을 활용할 수 있습니다. var):

public function get_custom_result($sql, $types = null, $params = null) {
    $stmt = $this->mysqli->prepare($sql);
    $stmt->bind_param($types, ...$params);

    if (!$stmt->execute()) return false;
    return $stmt->get_result();
}

이 업데이트된 get_custom_result() 메서드를 사용하면 $types 및 $params 인수입니다. ...$params 구문은 배열의 압축을 풀고 각 값을 개별적으로 bind_param() 메서드에 전달합니다.

예를 들어 다음 쿼리 및 매개변수 값을 고려해 보세요.

$sql = "
SELECT *
FROM root_contacts_cfm
WHERE root_contacts_cfm.cnt_id = ?
AND root_contacts_cfm.cnt_firstname = ?
ORDER BY cnt_id DESC";

$params = ['1', 'Tk'];

다음을 수행할 수 있습니다. 이제 동적 매개변수 바인딩을 사용하여 쿼리를 실행합니다.

$res = $output->get_custom_result($sql, 'ss', $params);

while ($row = $res->fetch_assoc()) {
    echo $row['fieldName'] .'<br>';
}

위 내용은 PHP에서 매개변수를 MySQL 쿼리에 동적으로 바인딩하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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