DOP::citação

Descarregar o driver PHP

Processa uma string para utilização numa consulta, colocando aspas em torno da string de entrada, conforme exigido pela base de dados do SQL Server subjacente. PDO::quote escapa caracteres especiais dentro da cadeia de entrada usando um estilo de citação apropriado ao SQL Server.

Syntax

  
string PDO::quote( $string[, $parameter_type ] )  

Parâmetros

$ string: A string a citar.

$ parameter_type: Um símbolo opcional (inteiro) que indica o tipo de dado. O padrão é PDO::P ARAM_STR.

Novas constantes PDO foram introduzidas no PHP 7.2 para adicionar suporte para binding de cadeias Unicode e não-Unicode. As strings Unicode podem ser rodeadas por aspas com um N como prefixo (ou seja, N'string' em vez de 'string').

  1. PDO::P ARAM_STR_NATL - um novo tipo para cadeias Unicode, a ser aplicado como bitwise-OR a PDO::P ARAM_STR
  2. PDO::P ARAM_STR_CHAR - um novo tipo para cadeias não Unicode, a ser aplicado como bitwise-OR a PDO::P ARAM_STR
  3. PDO::ATTR_DEFAULT_STR_PARAM - definido como PDO::P ARAM_STR_NATL ou PDO::P ARAM_STR_CHAR para indicar um valor para bitwise-OR para PDO::P ARAM_STR por defeito

A partir da versão 5.8.0, pode usar estas constantes com PDO::quote.

Valor de retorno

Uma cadeia de aspas que pode ser passada para uma instrução SQL, ou falsa em caso de falha.

Observações

O suporte para PDO foi adicionado na versão 2.0 dos Microsoft Drivers for PHP para SQL Server.

Exemplo de escape de cordas

<?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));  
?>  

Exemplo da citação do PDO

O script seguinte mostra alguns exemplos de como os tipos de cadeias estendidas afetam PDO::quote() com PHP 7.2+.

<?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'
?>