> 백엔드 개발 > PHP 문제 > PHP PDO 매개변수화된 쿼리를 구현하는 방법

PHP PDO 매개변수화된 쿼리를 구현하는 방법

藏色散人
풀어 주다: 2023-03-12 19:16:02
원래의
2168명이 탐색했습니다.

PHP에서는 prepare 메소드를 사용하여 PDO 매개변수화된 쿼리를 수행할 수 있습니다. 이 메소드는 "prepare('SELECT login_oid FROMlogged in WHERE user_id=..."와 같은 구문을 사용하여 PDOStatement 객체를 반환합니다.

PHP PDO 매개변수화된 쿼리를 구현하는 방법

이 문서의 작업 환경: Windows 7 시스템, PHP7.1, Dell G3 컴퓨터

PDO 매개변수 쿼리를 구현하는 방법

PDO 매개변수 쿼리 prepare() php는 SQL 삽입을 방지합니다

PDO의 매개변수 쿼리 주로 prepare( ) 메소드를 사용하며, 이 메소드는 SQL 문인 PDOStatement 객체를 반환합니다(이때 SQL 문은 컴파일만 되고 실행은 되지 않습니다. PDOStatement에서 메소드를 호출하면 다음 예와 같이 SQL 문이 실행됩니다.

$sm = $db->prepare('SELECT login_oid FROM logined WHERE user_id=:user_id;');
$sm->bindValue(':user_id', $user_id, PDO::PARAM_INT);
$sm -> execute();
로그인 후 복사

execute()가 실행되기 전에 findValue() 또는 binParam() 메소드를 호출하여 PDOStatement에서 지정한 매개변수를 대체할 수 있습니다. 이전에 준비된 SQL 문에 매개변수를 지정하는 방법은 ':name'과 '?' 두 가지가 있는데, 위 코드에서는 전자가 사용되었고, 후자는

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$sm->bindValue(1, $calories, PDO::PARAM_INT);
$sm->execute();
로그인 후 복사

bindValue() 3개가 있습니다. 매개변수 중 첫 번째는 SQL 문의 어떤 매개변수를 대체할지 지정하고, 두 번째는 대체를 지정합니다. 값 다음으로, 세 번째는 값의 유형을 지정합니다. 유형 대응은 다음과 같습니다.

PDO::PARAM_BOOL
로그인 후 복사

Boolean 유형.

PDO::PARAM_NULL
로그인 후 복사

NULL 유형

PDO::PARAM_INT
로그인 후 복사

정수 유형

PDO::PARAM_STR
로그인 후 복사

CHAR, VARCHAR, 문자열과 같은 문자열 유형

PDO::PARAM_LOB
로그인 후 복사

파일 등의 리소스 클래스 대형 개체

PDO::PARAM_STMT
로그인 후 복사

모름

PDO::PARAM_INPUT_OUTPUT
로그인 후 복사

이것 같습니다. 확장된 유형이 되세요

실수 유형이 제공되지 않는다는 점은 매우 놀랍습니다.

execute() 메소드에 대해 이야기해 보겠습니다. 매개변수 대체도 가능하지만 모든 값의 유형이 변경됩니다.

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$sm->execute(array($calories));
로그인 후 복사

다중 매개변수 대체는 다음과 같습니다

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?, id < ?;&#39;);
$sm->execute(array($calories, $user_id));
로그인 후 복사

추천 학습: "PHP Video Tutorial"

위 내용은 PHP PDO 매개변수화된 쿼리를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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