PHP에서 "PDO::prepare"는 실행할 명령문을 준비하고 명령문 객체를 반환하는 것을 의미합니다. 사용법 구문은 "public PDO::prepare(string $statement, array $driver_options = array())"와 같습니다. .
이 기사의 운영 환경: Windows 7 시스템, PHP 8 버전, 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) 또는 물음표(?) 형식의 매개 변수 자리 표시자 표시가 0개 이상 포함될 수 있습니다. 동일한 명령문 템플릿에서는 명명된 형식과 물음표 형식을 동시에 사용할 수 없으며 매개변수 형식 중 하나만 선택할 수 있습니다. 사용자가 입력한 데이터를 바인딩하려면 매개변수 형식을 사용하고, 문자열을 쿼리에 직접 연결하지 마세요.
PDOStatement::execute()를 호출할 때 각 값의 매개변수 자리 표시자 표시에는 고유한 이름이 있어야 합니다. 에뮬레이션 모드를 활성화하지 않으면 동일한 이름의 매개변수를 동일한 문에서 사용할 수 없습니다.
참고:
매개변수 자리 표시자는 문자 그대로 전체 데이터만 표시할 수 있습니다. 리터럴, 키워드, 식별자 또는 기타 임의 범위의 일부일 수 없습니다. 예: 여러 값을 단일 매개변수에 바인딩한 다음 SQL 문에서 IN() 쿼리를 사용할 수 없습니다.
다른 매개변수를 사용하여 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 준비의 사용법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!