효율적이고 안전한 쿼리를 위해 MySQLi의 매개변수 활용
PHP 데이터베이스 프로그래밍 영역에서 MySQLi 인터페이스를 통해 MySQL로 작업할 때, 쿼리에 동적 매개변수가 포함되는 시나리오가 발생하는 것이 일반적입니다. 다음 예를 고려하십시오.
SELECT $fields FROM $table WHERE $this = $that AND $this2 = $that2
SQL 문자열에 값을 삽입하여 이러한 쿼리를 수동으로 구성하려면 다음과 같이 하면 됩니다.
$search = array('name' => 'michael', 'age' => 20); $query = "SELECT $fields FROM $table WHERE name = '$search[name]' AND age = '$search[age]'";
그러나 이 접근 방식은 다음에 대한 우려를 불러일으킵니다. SQL 주입 취약점. 이 문제를 해결하기 위해 MySQLi는 매개변수화된 쿼리를 사용하는 강력한 솔루션을 제공합니다.
매개변수화된 쿼리의 힘
매개변수화된 쿼리를 사용하면 SQL 문 자체와 별도로 쿼리 매개변수를 전달할 수 있습니다. . 이는 사용자 입력을 악용할 수 있는 악성 코드 실행을 방지하여 보안을 크게 향상시킵니다. 위 예에 대한 매개변수화된 쿼리는 다음과 같습니다.
$db = new mysqli(...); $name = 'michael'; $age = 20; $stmt = $db->prepare("SELECT $fields FROm $table WHERE name = ? AND age = ?"); $stmt->bind_param("si", $name, $age); $stmt->execute(); $stmt->close();
자세한 설명
추가 팁
위 내용은 MySQLi의 매개변수화된 쿼리는 어떻게 SQL 주입 취약점으로부터 PHP 애플리케이션을 보호할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!