라이브러리

[PHP] mysqli_stmt::prepare - 실행을 위해 SQL 문을 준비합니다.




mysqli_stmt::prepare

PHP에서 `mysqli_stmt::prepare`는 MySQLi 확장의 `mysqli_stmt` 객체를 사용하여 SQL 쿼리를 준비하는 메서드입니다. 이 메서드는 쿼리를 실행하기 전에 쿼리를 분석하고 최적화하는 데 사용됩니다.

사용하는 이유


`mysqli_stmt::prepare`를 사용하는 이유는 다음과 같습니다.

* 쿼리 분석과 최적화: 쿼리를 실행하기 전에 쿼리를 분석하고 최적화하여 성능을 향상시킵니다.
* SQL Injection 방지: 쿼리를 준비하는 동안 쿼리 내의 변수를 분리하여 SQL Injection 공격을 방지합니다.
* 쿼리 재사용: 준비된 쿼리를 여러 번 실행할 수 있습니다.

예제


다음은 `mysqli_stmt::prepare`를 사용하는 예제입니다.

#hostingforum.kr
php

// MySQLi 연결

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



// 쿼리 준비

$stmt = $mysqli->prepare('SELECT * FROM users WHERE name = ? AND age = ?');



// 쿼리 변수 할당

$name = 'John';

$age = 25;



// 쿼리 실행

$stmt->bind_param('si', $name, $age);

$stmt->execute();



// 결과 가져오기

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

while ($stmt->fetch()) {

    echo "ID: $id, 이름: $name, 나이: $age
";

}



// 쿼리 닫기

$stmt->close();

$mysqli->close();



쿼리 변수 할당


`mysqli_stmt::prepare`를 사용할 때, 쿼리 내의 변수를 분리하여 쿼리 변수 할당을 해야 합니다. 이때, `bind_param` 메서드를 사용하여 쿼리 변수를 할당합니다.

쿼리 실행


준비된 쿼리를 실행하려면 `execute` 메서드를 사용합니다.

결과 가져오기


쿼리 결과를 가져올 때, `bind_result` 메서드를 사용하여 결과 변수를 할당하고, `fetch` 메서드를 사용하여 결과를 가져옵니다.

쿼리 닫기


쿼리를 닫기 위해서는 `close` 메서드를 사용합니다.

참고


* `mysqli_stmt::prepare` 메서드는 MySQLi 확장의 `mysqli_stmt` 객체를 사용하여 SQL 쿼리를 준비하는 메서드입니다.
* 쿼리 분석과 최적화: 쿼리를 실행하기 전에 쿼리를 분석하고 최적화하여 성능을 향상시킵니다.
* SQL Injection 방지: 쿼리를 준비하는 동안 쿼리 내의 변수를 분리하여 SQL Injection 공격을 방지합니다.
* 쿼리 재사용: 준비된 쿼리를 여러 번 실행할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 376 페이지

검색

게시물 검색