현재 위치: > 최신 기사 목록> stmt_init 및 fetch ()의 사용에 대한 자세한 설명과 함께

stmt_init 및 fetch ()의 사용에 대한 자세한 설명과 함께

M66 2025-05-16

PHP를 사용하여 MySQL 데이터베이스를 작동 할 때 MySQLI 확장자는 SQL 문을보다 안전하고 구조적으로 실행할 수있는 객체 지향 인터페이스를 제공합니다. 특히 준비된 진술을 실행할 때 mysqli :: stmt_initfetch () 는 두 가지 매우 중요한 기능입니다.

이 기사는 mysqli :: stmt_init ()를 사용하여 명령문 개체를 초기화하고 fetch () 메소드를 결합하여 데이터베이스에서 데이터를 안전하고 효율적으로 얻는 방법을 자세히 소개합니다.

1. mysqli :: stmt_init 란 무엇입니까?

mysqli :: stmt_init ()는 명령문 개체 ( mysqli_stmt )를 초기화하는 데 사용되는 MySQLI 클래스의 메소드입니다. 그런 다음이 객체는 repay () 메소드를 통해 SQL 문을 준비 할 수 있습니다. 이것의 장점은 진술을 재사용하고 매개 변수를 바인딩하여 코드의 보안 및 효율성을 향상시킬 수 있다는 것입니다.

예:

 $mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

$stmt = $mysqli->stmt_init();

2. SQL 문을 준비하고 실행하십시오

stmt_init () 로 명령문 객체를 작성한 후 repay ()를 사용하여 쿼리 문을 준비하고 bind_param ()을 사용하여 매개 변수를 바인딩하십시오.

 $query = "SELECT id, name, email FROM users WHERE status = ?";
if ($stmt->prepare($query)) {
    $status = 'active';
    $stmt->bind_param("s", $status);
    $stmt->execute();
}

팁 : bind_param 의 첫 번째 매개 변수 "s"는 매개 변수 유형이 문자열 ( 문자열 )임을 의미합니다.

3. 결과를 바인딩하고 fetch ()를 사용하여 데이터를 추출합니다.

명령문을 실행 한 후 Bind_Result ()를 사용하여 쿼리 결과 열을 변수에 바인딩 한 다음 Fetch () 메소드를 사용하여 데이터 행을 행으로 추출 할 수 있습니다.

 $stmt->bind_result($id, $name, $email);

while ($stmt->fetch()) {
    echo "사용자ID: $id<br>";
    echo "사용자名: $name<br>";
    echo "우편: $email<br><br>";
}

4. 완전한 예

다음은 완전한 PHP 샘플 프로그램입니다.

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    die("연결이 실패했습니다: " . $mysqli->connect_error);
}

$stmt = $mysqli->stmt_init();
$query = "SELECT id, name, email FROM users WHERE status = ?";

if ($stmt->prepare($query)) {
    $status = 'active';
    $stmt->bind_param("s", $status);
    $stmt->execute();
    $stmt->bind_result($id, $name, $email);

    echo "<h2>活跃사용자列表:</h2>";
    while ($stmt->fetch()) {
        echo "<div>";
        echo "<strong>ID:</strong> $id<br>";
        echo "<strong>이름:</strong> $name<br>";
        echo "<strong>우편:</strong> <a href='mailto:$email'>$email</a><br>";
        echo "<a href='https://m66.net/user/profile.php?id=$id'>세부 사항을 확인하십시오</a>";
        echo "</div><hr>";
    }

    $stmt->close();
} else {
    echo "SQL 전처리가 실패했습니다: " . $stmt->error;
}

$mysqli->close();
?>