PDO::quote
기본 SQL Server 데이터베이스에 필요한 입력 문자열을 따옴표로 묶어 쿼리에서 사용할 문자열을 처리합니다. PDO::quote는 SQL Server에 적절한 따옴표 스타일을 사용하여 입력 문자열 내에서 특수 문자를 이스케이프합니다.
구문
string PDO::quote( $string[, $parameter_type ] )
매개 변수
$string: 따옴표로 묶을 문자열입니다.
$parameter_type: 데이터 형식을 나타내는 선택적(정수) 기호입니다. 기본값은 PDO::P ARAM_STR입니다.
유니코드 및 비유니코드 문자열 바인딩에 대한 지원을 추가하기 위해 새 PDO 상수를 PHP 7.2에 도입하였습니다. 유니코드 문자열은 N을 접두사로 사용하여 따옴표로 묶을 수 있습니다(예: 'string' 대신 N'string').
- PDO::PARAM_STR_NATL - 유니코드 문자열의 새 형식으로서 PDO::PARAM_STR에 대한 비트 OR로 적용됩니다.
- PDO::P ARAM_STR_CHAR - 유니코드가 아닌 문자열에 대한 새 형식으로, PDO::P ARAM_STR에 비트 OR로 적용됩니다.
- PDO::ATTR_DEFAULT_STR_PARAM - PDO::PARAM_STR_NATL 또는 PDO::PARAM_STR_CHAR로 설정하여 PDO::PARAM_STR에 대한 비트 OR로 값을 지정합니다.
버전 5.8.0부터 이러한 상수는 PDO::quote와 함께 사용할 수 있습니다.
Return Value
SQL 문에 전달할 수 있는 따옴표 붙은 문자열이거나 실패할 경우 false입니다.
설명
Microsoft Drivers for PHP for SQL Server의 2.0 버전에서 PDO에 대한 지원이 추가되었습니다.
문자열 이스케이프 예제
<?php
$database = "test";
$server = "(local)";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "");
$param = 'a \' g';
$param2 = $conn->quote( $param );
$query = "INSERT INTO Table1 VALUES( ?, '1' )";
$stmt = $conn->prepare( $query );
$stmt->execute(array($param));
$query = "INSERT INTO Table1 VALUES( ?, ? )";
$stmt = $conn->prepare( $query );
$stmt->execute(array($param, $param2));
?>
PDO quote 예제
다음 스크립트는 확장 문자열 형식이 PHP 7.2 이상인 PDO::quote()에 미치는 영향에 대한 몇 가지 예를 보여 줍니다.
<?php
$database = "test";
$server = "(local)";
$db = new PDO("sqlsrv:server=$server; Database=$database", "", "");
$db->quote('über', PDO::PARAM_STR | PDO::PARAM_STR_NATL); // N'über'
$db->quote('foo'); // 'foo'
$db->setAttribute(PDO::ATTR_DEFAULT_STR_PARAM, PDO::PARAM_STR_NATL);
$db->quote('über'); // N'über'
$db->quote('foo', PDO::PARAM_STR | PDO::PARAM_STR_CHAR); // 'foo'
?>