PDO::quote

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.1)

PDO::quote — 쿼리에 사용할 문자열을 인용합니다.


설명

public PDO::quote(string $string, int $type = PDO::PARAM_STR): string|false

PDO::quote()는 (필요한 경우) 입력 문자열 주위에 따옴표를 배치하고 기본 드라이버에 적절한 인용 스타일을 사용하여 입력 문자열 내에서 특수 문자를 이스케이프합니다.

이 함수를 사용하여 SQL 문을 빌드하는 경우 PDO::quote()를 사용하여 SQL 문으로 사용자 입력을 보간하는 대신 PDO::prepare()를 사용하여 바인딩된 매개변수가 있는 SQL 문을 준비하는 것이 좋습니다. 바인딩된 매개변수가 있는 준비된 명령문은 SQL 주입에 대한 내성이 있고 이식성이 더 높을 뿐만 아니라 서버 측과 클라이언트 측 모두 컴파일된 형식의 쿼리를 캐시할 수 있기 때문에 종종 보간된 쿼리보다 실행 속도가 훨씬 빠릅니다.

모든 PDO 드라이버가 이 메서드를 구현하는 것은 아닙니다(특히 PDO_ODBC). 대신 준비된 문을 사용하는 것이 좋습니다.

주의

보안: 기본 문자 집합

문자 집합은 서버 수준 또는 데이터베이스 연결 자체(드라이버에 따라 다름)에서 설정해야 PDO::quote()에 영향을 줍니다. 자세한 내용은 드라이버별 설명서를 참조하십시오.


매개변수

string
인용할 문자열입니다.
type
대체 인용 스타일이 있는 드라이버의 데이터 유형에 대한 힌트를 제공합니다. 예를 들어 PDO_PARAM_LOB는 드라이버에 바이너리 데이터를 이스케이프하도록 지시합니다.

반환 값

이론적으로 SQL 문에 전달하기에 안전한 인용 문자열을 반환합니다. 드라이버가 이러한 방식으로 인용을 지원하지 않으면 false를 반환합니다.


Examples

예제 #1 일반 문자열 인용하기

                  
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Simple string */
$string = 'Nice';
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>
                  
                

위의 예는 다음을 출력합니다.

Unquoted string: Nice
Quoted string: 'Nice'
                

예제 #2 위험한 문자열 인용하기

                  
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Dangerous string */
$string = 'Naughty \' string';
print "Unquoted string: $string\n";
print "Quoted string:" . $conn->quote($string) . "\n";
?>
                  
                

위의 예는 다음을 출력합니다.

Unquoted string: Naughty ' string
Quoted string: 'Naughty '' string'
                

예제 #3 복잡한 문자열 인용하기

                  
<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');

/* Complex string */
$string = "Co'mpl''ex \"st'\"ring";
print "Unquoted string: $string\n";
print "Quoted string: " . $conn->quote($string) . "\n";
?>
                  
                

위의 예는 다음을 출력합니다.

Unquoted string: Co'mpl''ex "st'"ring
Quoted string: 'Co''mpl''''ex "st''"ring'
                

기타