집 >데이터 베이스 >MySQL 튜토리얼 >매개변수화된 쿼리는 어떻게 SQL 주입을 방지합니까?
매개변수화된 쿼리: SQL 삽입에 대한 방어막
매개변수 쿼리 이해
Prepared 문이라고도 알려진 매개변수화된 쿼리는 SQL 문을 작성하는 기술입니다. 쿼리의 고정 부분에서 동적 데이터(매개변수)를 분리합니다. 이를 통해 실행 중에 효율적인 매개변수 설정이 가능합니다.
PHP와 MySQL: 실용적인 데모
사용자 이메일 주소에 대한 매개변수가 포함된 SQL 쿼리를 예로 들어 보겠습니다.
<code class="language-sql">SELECT * FROM users WHERE email = 'foo@example.com'</code>
mysqli로 구현
<code class="language-php"><?php $mysqli = new mysqli('localhost', 'username', 'password', 'database'); $stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bind_param('s', 'foo@example.com'); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // Process the retrieved data... } $stmt->close(); ?></code>
PDO를 이용한 구현
<code class="language-php"><?php $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password'); $stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?"); $stmt->bindParam(1, 'foo@example.com', PDO::PARAM_STR); $stmt->execute(); $result = $stmt->fetchAll(); foreach ($result as $row) { // Process the retrieved data... } ?></code>
매개변수화된 쿼리의 주요 장점:
위 내용은 매개변수화된 쿼리는 어떻게 SQL 주입을 방지합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!