다음을 통해 공유


PDO::quote

PHP 드라이버 다운로드

기본 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').

  1. PDO::PARAM_STR_NATL - 유니코드 문자열의 새 형식으로서 PDO::PARAM_STR에 대한 비트 OR로 적용됩니다.
  2. PDO::P ARAM_STR_CHAR - 유니코드가 아닌 문자열에 대한 새 형식으로, PDO::P ARAM_STR에 비트 OR로 적용됩니다.
  3. 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'
?>

참고 항목

PDO 클래스

PDO