PHP에서 MySQL 바인드 매개변수를 동적으로 바인딩
알다시피, PHP MySQLi 확장의 bind_param 메소드는 여러 매개변수나 매개변수 없는 쿼리를 동적으로 처리하는 측면에서 제한될 수 있습니다. 다음은 이 문제를 해결하기 위한 전략입니다.
call_user_func_array 사용
다음 코드 조각을 사용하면 매개변수 배열을 동적으로 생성하고 바인딩할 수 있습니다.
if (strnatcmp(phpversion(), '5.3') >= 0) { $refs = array(); foreach ($arr as $key => $value) $array_of_params[$key] = &$arr[$key]; call_user_func_array(array(&$stmt, 'bind_params'), $array_of_params); }
PHP 5.6 사용 구문
PHP 5.6 이상에서는 압축 해제 연산자와 get_result() 메서드를 활용할 수 있습니다.
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(); }
예:
$mysqli = new database(DB_HOST, DB_USER, DB_PASS, DB_NAME); $output = new search($mysqli); $sql = "SELECT * FROM root_contacts_cfm WHERE root_contacts_cfm.cnt_id = ? AND root_contacts_cfm.cnt_firstname = ? ORDER BY cnt_id DESC"; $res = $output->get_custom_result($sql, 'ss', array('1', 'Tk')); while ($row = res->fetch_assoc()) { echo $row['fieldName'] . '<br>'; }
이러한 솔루션은 더 많은 유연성을 제공합니다. MySQL 쿼리에 대한 동적 바인딩 기능을 제공합니다.
위 내용은 PHP에서 MySQL 매개변수를 동적으로 바인딩하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!