> 백엔드 개발 > PHP 튜토리얼 > PHP의 mysql 문 사전 컴파일 및 이해

PHP의 mysql 문 사전 컴파일 및 이해

小云云
풀어 주다: 2023-03-21 07:42:01
원래의
2893명이 탐색했습니다.


이 기사에서는 주로 PHP의 mysql 문 사전 컴파일에 대한 이해를 공유합니다. 전처리 문은 실행 효율성을 높여 여러 개의 동일한 SQL 문을 실행하는 데 사용됩니다. 전처리된 문은 다음과 같이 작동합니다.

  1. 전처리: SQL 문 템플릿을 생성하여 데이터베이스로 보냅니다. 예약된 값은 "?"라는 매개변수로 표시됩니다. 예:

  2. INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
    로그인 후 복사
  3. SQL 문 템플릿에 대한 데이터베이스 구문 분석, 컴파일, 쿼리 최적화 및 결과를 출력하지 않고 저장합니다.

  4. 실행: 마지막으로 애플리케이션에 바인딩된 값이 매개변수("?" 표시)에 전달되고 데이터베이스가 해당 명령문을 실행합니다. 매개변수 값이 다를 경우 애플리케이션은 해당 명령문을 여러 번 실행할 수 있습니다.

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 문 잠금을 구현하는 방법

mysql 문을 사용하여 데이터 테이블을 만드는 방법에 대한 자세한 자습서

위 내용은 PHP의 mysql 문 사전 컴파일 및 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿