PHP에서 MySQLI Extension은 강력한 MySQL 데이터베이스 작동 기능을 제공하며, 여기서 MySQLI :: STMT_INIT 함수는 전처리 명령문을 초기화하는 데 사용되는 핵심 기능입니다. 이 기사는 mysqli :: stmt_init 함수를 사용하여 mysql 문을 초기화하고 준비하는 방법을 자세히 설명합니다.
전처리 명세서는 SQL 실행 효율성 및 보안을 향상시키기 위해 MySQL이 제공하는 기술입니다. 전처리 명세서를 사용하여 SQL 쿼리는 구문 분석을 위해 데이터베이스 서버로 전송되며 실행시 데이터가 전달됩니다. 이는 실행 효율성을 향상시킬뿐만 아니라 SQL 주입과 같은 보안 문제를 효과적으로 방지합니다.
PHP에서 데이터베이스 작업에 MySQLI 확장자를 사용할 때는 STMT_INIT 메소드를 통해 전처리 명령문 개체를 초기화 한 다음 repay () 메소드를 통해 SQL 문을 준비 할 수 있습니다.
mysqli :: stmt_init 함수는 mysqli_stmt 객체를 작성하는 데 사용되며, 이는 전처리 문을 실행하는 데 필요합니다.
$stmt = $mysqli->stmt_init();
여기 $ mysqli 는 유효한 mysqli 연결 객체입니다.
<?php
// 연결하십시오 MySQL 데이터 베이스
$mysqli = new mysqli("localhost", "username", "password", "database_name");
// 연결이 성공했는지 확인하십시오
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
// 전처리 명령문 객체를 초기화하십시오
$stmt = $mysqli->stmt_init();
// 초기화가 성공했는지 확인하십시오
if ($stmt === false) {
die("Failed to initialize statement.");
}
// 준비하다 SQL 성명
$query = "SELECT id, name FROM users WHERE email = ?";
if ($stmt->prepare($query)) {
// 바인딩 매개 변수
$stmt->bind_param("s", $email); // 's' 문자열 유형을 나타냅니다
// 매개 변수 값을 설정합니다
$email = "user@m66.net";
// 执行성명
$stmt->execute();
// 바인딩 결과
$stmt->bind_result($id, $name);
// 쿼리 결과를 얻으십시오
while ($stmt->fetch()) {
echo "ID: $id, Name: $name\n";
}
// 关闭성명
$stmt->close();
} else {
echo "Failed to prepare statement.";
}
// 关闭데이터 베이스连接
$mysqli->close();
?>
데이터베이스 <br>에 연결하십시오 새 MySQLI ()를 사용하여 MySQL 데이터베이스에 연결하고 연결이 성공했는지 확인하십시오.
전처리 진술을 초기화하십시오 <br> $ mysqli-> stmt_init () 을 호출하여 전처리 명세서 개체를 초기화하십시오. $ stmt . False가 반환되면 초기화가 실패했음을 의미합니다.
SQL 문 <br> 준비하십시오 $ sql 문을 준비하려면 $ stmt-> repay ($ query) 메소드를 사용하십시오. ? 쿼리의 매개 변수를 나타내는 자리 표시 자입니다.
바인드 매개 변수 <br> $ stmt-> bind_param () 메소드를 사용하여 실제 매개 변수를 전처리 명령문에서 자리 표시 자에게 바인딩하십시오. "S"는 이 매개 변수가 문자열 유형임을 의미합니다.
실행 명세서 <br> $ sql 쿼리를 실행하려면 $ stmt-> execute () 를 사용하십시오.
바인딩 결과 <br> $ stmt-> bind_result ()를 사용하여 쿼리 결과를 PHP 변수에 바인딩하십시오.
쿼리 결과를 얻으십시오 <br> $ stmt-> fetch ()를 사용하여 쿼리 결과를 가져 와서 바운드 변수를 통해 출력하십시오.
진술과 연결을 닫습니다 <br> $ stmt-> close ()를 사용하여 전처리 명세서 개체를 닫고 마지막으로 $ mysqli-> close ()를 사용하여 데이터베이스 연결을 닫으십시오.
성능 향상 <br> 전처리 명세서는 SQL 쿼리 분석 프로세스를 미리 수행하여 동일한 쿼리를 여러 번 실행하는 효율성을 크게 향상시킬 수 있습니다.
SQL 주입 방지 <br> 파라미터를 결합함으로써 MySQLI는 SQL 주입 공격을 효과적으로 피할 수 있습니다.
관리 및 유지 관리가 쉬운 <br> stmt_init 함수를 사용하여 명령문 객체를 초기화하여 코드 구조를 더 명확하고 유지 관리하기 쉽게 만듭니다.
관련 태그:
mysqli