현재 위치: > 최신 기사 목록> mysqli :: stmt_init 함수를 사용하여 SQL 전처리 명령문을 준비하고 실행하는 방법?

mysqli :: stmt_init 함수를 사용하여 SQL 전처리 명령문을 준비하고 실행하는 방법?

M66 2025-06-26

PHP에서 MySQLI Extension을 사용하면 데이터베이스에 연결하고 쿼리를 실행하는 데 도움이 될 수 있습니다. 보안을 개선하고 SQL 주입을 방지하기 위해 MySQLI는 준비된 진술을 제공합니다. 이 기사에서는 MySQLI :: STMT_INIT 함수를 사용하여 SQL 전처리 문을 준비하고 실행하는 방법을 설명합니다.

전처리 진술은 무엇입니까?

전처리 문은 데이터베이스 상호 작용의 방법입니다. 그들은 SQL 문을 데이터와 분리하고 먼저 SQL 쿼리의 템플릿을 데이터베이스로 전송 한 다음 매개 변수를 쿼리에 바인딩 할 수 있습니다. 그렇게하면 SQL 주입 공격을 방지하고 보안을 향상시킬 수 있습니다.

mysqli :: stmt_init 함수 소개

mysqli :: stmt_init는 새로운 전처리 문을 초기화하는 데 사용되는 MySQLI 클래스의 메소드입니다. 매개 변수를 바인딩하고 SQL 쿼리를 실행하는 데 사용할 수있는 MySQLI_STMT 객체를 반환합니다.

SQL 전처리 명세서를 준비하고 실행하는 단계

다음은 mysqli :: stmt_init 함수를 사용하여 SQL 전처리 명령문을 준비하고 실행하는 단계입니다.

1. 데이터베이스 연결을 만듭니다

먼저 MySQL 데이터베이스에 연결해야합니다. MySQLI 클래스를 사용하여 데이터베이스 연결을 생성 할 수 있습니다.

 <?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";

// 연결을 만듭니다
$conn = new mysqli($servername, $username, $password, $dbname);

// 연결을 확인하십시오
if ($conn->connect_error) {
    die("연결이 실패했습니다: " . $conn->connect_error);
}
?>

2. 전처리 명세서를 초기화합니다

mysqli :: stmt_init 함수를 사용하여 새 전처리 명세서 개체를 초기화하십시오. 이 객체는 매개 변수를 바인딩하고 SQL 쿼리를 실행하는 데 사용됩니다.

 <?php
// 전처리 진술을 초기화하십시오
$stmt = $conn->stmt_init();

// 초기화가 성공했는지 확인하십시오
if (!$stmt) {
    die("전처리 명세서 초기화에 실패했습니다: " . $conn->error);
}
?>

3. SQL 쿼리를 준비하십시오

준비 방법을 사용하여 SQL 쿼리 문을 준비하십시오. 간단한 선택 쿼리를 실행하고 데이터베이스에서 사용자 정보를 얻으려고한다고 가정하십시오.

 <?php
$sql = "SELECT * FROM users WHERE email = ?";
$stmt->prepare($sql);
?>

4. 파라미터 바인드

BIND_PARAM 메소드를 사용하여 SQL 쿼리의 바인드 홀더 ( ? )에 변수를 바인딩하십시오. 이 예에서는 문자열 유형 (사용자의 이메일)의 매개 변수를 바인딩합니다.

 <?php
$email = "user@example.com";
$stmt->bind_param("s", $email); // "s" 문자열 유형을 나타냅니다
?>

5. 쿼리를 실행하십시오

실행 메소드를 사용하여 SQL 쿼리를 실행하십시오.

 <?php
$stmt->execute();
?>

6. 쿼리 결과를 얻으십시오

쿼리가 성공적으로 실행되면 get_result 메소드를 사용하여 결과 세트를 가져 와서 mysqli_result 객체를 반환 할 수 있습니다.

 <?php
$result = $stmt->get_result();

// 결과를 가져 와서 표시하십시오
while ($row = $result->fetch_assoc()) {
    echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
?>

7. 진술과 연결을 닫습니다

쿼리가 완료되면 전처리 문과 데이터베이스 연결을 닫으십시오.

 <?php
$stmt->close();
$conn->close();
?>

요약

위의 단계를 통해 mysqli :: stmt_init 함수를 사용하여 SQL 전처리 명령문을 성공적으로 준비하고 실행할 수 있습니다. 전처리 명세서는 코드 보안을 개선 할뿐만 아니라 SQL 주입 공격을 방지 할뿐만 아니라 특히 동일한 쿼리가 여러 번 실행될 때 데이터베이스 쿼리 효율성을 향상시킵니다.

 $url = "https://api.m66.net/data"; // 도메인 이름을 대체하십시오 m66.net