라이브러리

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




mysqli::prepare

PHP의 `mysqli` 클래스는 MySQL 데이터베이스와 상호 작용하는 데 사용되는 확장입니다. `mysqli::prepare` 메서드는 SQL 쿼리를 준비하고, 쿼리 매개 변수를 바인딩하는 데 사용됩니다.

왜 사용해야 하나요?

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

* SQL 인젝션 공격 방지: 쿼리 매개 변수를 바인딩하여 SQL 인젝션 공격을 방지할 수 있습니다.
* 코드 재사용: 준비된 쿼리를 여러 번 사용할 수 있습니다.
* 성능 향상: 쿼리를 준비하는 과정을 분리하여 성능을 향상할 수 있습니다.

예제

다음 예제는 `mysqli::prepare`를 사용하여 사용자 이름과 비밀번호를 확인하는 쿼리를 작성하는 방법을 보여줍니다.

#hostingforum.kr
php

<?php

// MySQL 연결 설정

$servername = "localhost";

$username = "root";

$password = "";

$dbname = "mydb";



// MySQL 연결 객체 생성

$conn = new mysqli($servername, $username, $password, $dbname);



// 쿼리 준비

$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");



// 쿼리 매개 변수 바인딩

$stmt->bind_param("ss", $username, $password);



// 쿼리 실행

$stmt->execute();



// 결과 가져오기

$result = $stmt->get_result();



// 결과 출력

while ($row = $result->fetch_assoc()) {

    echo "ID: " . $row["id"] . "
";

    echo "Username: " . $row["username"] . "
";

    echo "Password: " . $row["password"] . "
";

}



// 자원 해제

$stmt->close();

$conn->close();

?>



예제 설명

1. MySQL 연결 설정: MySQL 연결 설정을 합니다.
2. MySQL 연결 객체 생성: MySQL 연결 객체를 생성합니다.
3. 쿼리 준비: 쿼리를 준비합니다. `?`는 쿼리 매개 변수를 나타냅니다.
4. 쿼리 매개 변수 바인딩: 쿼리 매개 변수를 바인딩합니다. `bind_param` 메서드는 매개 변수의 타입을 지정합니다. `s`는 문자열을 나타냅니다.
5. 쿼리 실행: 쿼리를 실행합니다.
6. 결과 가져오기: 결과를 가져옵니다.
7. 결과 출력: 결과를 출력합니다.
8. 자원 해제: 자원을 해제합니다.

주의사항

* 쿼리 매개 변수를 바인딩할 때, 매개 변수의 타입을 지정해야 합니다.
* 쿼리 매개 변수를 바인딩할 때, 매개 변수의 이름을 지정해야 합니다.
* 쿼리 매개 변수를 바인딩할 때, 매개 변수의 타입과 이름을 지정해야 합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

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

검색

게시물 검색