이 기사에서는 주로 PHP의 mysql 문 사전 컴파일에 대한 이해를 공유합니다. 전처리 문은 실행 효율성을 높여 여러 개의 동일한 SQL 문을 실행하는 데 사용됩니다. 전처리된 문은 다음과 같이 작동합니다.
전처리: SQL 문 템플릿을 생성하여 데이터베이스로 보냅니다. 예약된 값은 "?"라는 매개변수로 표시됩니다. 예:
INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
SQL 문 템플릿에 대한 데이터베이스 구문 분석, 컴파일, 쿼리 최적화 및 결과를 출력하지 않고 저장합니다.
실행: 마지막으로 애플리케이션에 바인딩된 값이 매개변수("?" 표시)에 전달되고 데이터베이스가 해당 명령문을 실행합니다. 매개변수 값이 다를 경우 애플리케이션은 해당 명령문을 여러 번 실행할 수 있습니다.
SQL 문을 직접 실행하는 것에 비해 준비된 문은 두 가지 주요 장점이 있습니다.
전처리된 문은 분석 시간을 크게 단축하고 하나의 쿼리만 수행합니다(문이 여러 번 실행됨에도 불구하고).
바인딩 매개변수는 서버 대역폭을 줄이므로 전체 문 대신 쿼리 매개변수만 보내면 됩니다.
전처리된 문은 SQL 주입에 매우 유용합니다. 매개변수 값이 전송된 후 다른 프로토콜이 사용되어 데이터의 적법성을 보장하기 때문입니다.
아래에 DML(삭제 업데이트 삽입) 및 DQL(선택) 문에 대한 전처리 코드가 첨부되어 있습니다.
//预处理1--操作数据库
$mysqli = new mysqli('localhost','root','mayi1991','mysqldemo');
$mysqli->query('set names utf8');
//创建预编译对象
$mysqli_stmt = $mysqli->prepare("insert account (balance,name) values (?,?)");
//绑定参数
$balance = 122;
$name = '小白';
$mysqli_stmt->bind_param("ds",$balance,$name);
//$mysqli_stmt->bind_param("ds",122,'小白'); //这样是错误的,我也不知道为啥子
//执行 返回boolean值
$mysqli_stmt->execute();
관련 권장 사항:
MySQL 문 잠금을 구현하는 방법
mysql 문을 사용하여 데이터 테이블을 만드는 방법에 대한 자세한 자습서
위 내용은 PHP의 mysql 문 사전 컴파일 및 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!