PHP에서 prerare의 사용법은 "PDO::prepare"입니다. 이는 실행할 명령문을 준비하고 명령문 객체를 반환하는 것을 의미합니다. 사용법 구문은 "public PDO::prepare(string $statement, array $driver_options"와 같습니다. = 배열() )".
이 튜토리얼의 운영 체제: Windows 10 시스템, PHP 버전 8.1.3, Dell G3 컴퓨터.
php prepare 사용법
PDO::prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PHP 8,PECL pdo >= 0.1.0)
PDO::prepare — 실행할 명령문을 준비하고 명령문 객체를 반환합니다
Description
public PDO::prepare(string $statement, array $driver_options = array()): PDOStatement为 PDOStatement::execute() 方法准备待执行的 SQL 语句。 语句模板可以包含零个或多个参数占位标记,格式是命名(:name)或问号(?)的形式,当它执行时将用真实数据取代。 在同一个语句模板里,命名形式和问号形式不能同时使用;只能选择其中一种参数形式。 请用参数形式绑定用户输入的数据,不要直接字符串拼接到查询里。
PDOStatement::execute()를 호출할 때 각 값의 매개변수 자리 표시자 표시는 고유해야 합니다. 시뮬레이션 모드를 활성화하지 않으면 동일한 이름의 매개변수를 동일한 명령문에서 사용할 수 없습니다.
참고:
매개변수 자리 표시자는 문자 그대로 전체 데이터만 표시할 수 있습니다. 리터럴, 키워드, 식별자 또는 기타 임의 범위의 일부일 수 없습니다. 예: 여러 값을 단일 매개변수에 바인딩한 다음 IN()을 사용하여 SQL 문에서 쿼리할 수 없습니다.
다른 매개변수를 사용하여 PDO::prepare() 및 PDOStatement::execute()를 통해 동일한 SQL 문을 여러 번 호출하면 애플리케이션 성능이 향상됩니다. 드라이버는 클라이언트/서버가 쿼리를 캐시하도록 허용할 수 있습니다. 그리고 메타 정보. 동시에 PDO::prepare() 및 PDOStatement::execute()를 호출하면 수동으로 따옴표를 추가하고 매개변수를 이스케이프하지 않고도 SQL 주입 공격을 방지할 수 있습니다.
내장 드라이버가 매개변수를 지원하지 않는 경우 PDO는 매개변수의 기능을 시뮬레이션합니다. 드라이버가 스타일(이름이 지정된 매개변수 및 물음표 매개변수) 중 하나만 지원하는 경우 자동으로 다른 스타일로 다시 작성됩니다.
注意: The parser used for emulated prepared statements and for rewriting named or question mark style parameters supports the non standard backslash escapes for single- and double quotes. That means that terminating quotes immediately preceeded by a backslash are not recognized as such, which may result in wrong detection of parameters causing the prepared statement to fail when it is executed. A work-around is to not use emulated prepares for such SQL queries, and to avoid rewriting of parameters by using a parameter style which is natively supported by the driver.
매개변수
statement
는 대상 데이터베이스 서버에 대해 유효한 SQL 문 템플릿이어야 합니다.
driver_options
배열에는 반환된 PDOStatement 개체의 속성을 설정하기 위한 하나 이상의 key=>value 키-값 쌍이 포함되어 있습니다. 일반적인 사용법은 다음과 같습니다. PDO::ATTR_CURSOR를 PDO::CURSOR_SCROLL로 설정하면 스크롤 가능한 커서가 생성됩니다. 일부 드라이버에는 준비 중에 설정되는 드라이버 수준 옵션이 있습니다.
반환 값
데이터베이스 서버가 명령문 준비를 완료하면 PDO::prepare()는 PDOStatement 객체를 반환합니다. 데이터베이스 서버가 명령문을 준비할 수 없는 경우 PDO::prepare()는 false를 반환하거나 PDOException을 발생시킵니다(오류 핸들러에 따라 다름).
참고:
시뮬레이션 모드의 prepare 문은 데이터베이스 서버와 상호 작용하지 않으므로 PDO::prepare()는 문을 확인하지 않습니다.
예제
예제 #1 명명된 매개 변수 형식의 SQL 문 템플릿
<?php /* 传入数组的值,并执行准备好的语句 */ $sql = 'SELECT name, colour, calories FROM fruit WHERE calories < :calories AND colour = :colour'; $sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); $sth->execute(array(':calories' => 150, ':colour' => 'red')); $red = $sth->fetchAll(); $sth->execute(array(':calories' => 175, ':colour' => 'yellow')); $yellow = $sth->fetchAll(); ?>
예제 #2 물음표 형식의 SQL 문 템플릿
<?php /* 传入数组的值,并执行准备好的语句 */ $sth = $dbh->prepare('SELECT name, colour, calories FROM fruit WHERE calories < ? AND colour = ?'); $sth->execute(array(150, 'red')); $red = $sth->fetchAll(); $sth->execute(array(175, 'yellow')); $yellow = $sth->fetchAll(); ?>
위 내용은 PHP에서 프리레어를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!