Compartilhar via


PDO::quote

Baixar driver PHP

Processa uma cadeia de caracteres para uso em uma consulta, colocando a cadeia de caracteres de entrada entre aspas, conforme exigido pelo banco de dados do SQL Server subjacente. O PDO::quote insere um caractere de escape antes de caracteres especiais na cadeia de caracteres de entrada, usando um estilo de aspas adequado ao SQL Server.

Sintaxe

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

Parâmetros

$string: a cadeia de caracteres a ser cotada.

$parameter_type: um símbolo opcional (inteiro) que indica o tipo de dados. O padrão é PDO::PARAM_STR.

Novas constantes PDO foram introduzidas no PHP 7.2 para adicionar suporte para cadeias de caracteres Unicode e não Unicode de associação. As cadeias de caracteres Unicode podem ser colocadas entre aspas com um N como prefixo (ou seja, N"cadeia de caracteres" em vez de "cadeia de caracteres").

  1. PDO::P ARAM_STR_NATL – um novo tipo de cadeias de caracteres Unicode, a ser aplicado como um bitwise-OR para PDO::PARAM_STR
  2. PDO::P ARAM_STR_CHAR – um novo tipo de cadeias de caracteres não Unicode, a ser aplicado como um bitwise-OR para PDO::PARAM_STR
  3. PDO:: ATTR_DEFAULT_STR_PARAM – configure como PDO::PARAM_STR_NATL ou PDO::PARAM_STR_CHAR para indicar um valor para bitwise-OR para PDO::PARAM_STR por padrão

Com a versão 5.8.0 será possível usar essas constantes com PDO::quote.

Valor de retorno

Uma cadeia de caracteres entre aspas que pode ser passada para uma instrução SQL ou false se falhar.

Comentários

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

Exemplo de escape de cadeia de caracteres

<?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 de cotação de PDO

O script a seguir mostra alguns exemplos de como os tipos de cadeia de caracteres estendidos afetam PDO::quote() com o 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'
?>

Consulte Também

PDO Class

PDO