PDO::quote

Download del driver PHP

Elabora una stringa da usare in una query, inserendo le virgolette per racchiudere la stringa di input come richiesto dal database di SQL Server sottostante. PDO::quote ignorerà i caratteri speciali all'interno della stringa di input usando uno stile di delimitazione appropriato per SQL Server.

Sintassi

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

Parametri

$string: stringa da delimitare.

$parameter_type: simbolo (intero) facoltativo che indica il tipo di dati. Il valore predefinito è PDO::PARAM_STR.

In PHP 7.2 sono state introdotte nuove costanti PDO per aggiungere il supporto per l'associazione di stringhe Unicode e non Unicode. Le stringhe Unicode possono essere racchiuse tra virgolette con N come prefisso (ad esempio N'string' invece di 'string').

  1. PDO::PARAM_STR_NATL: un nuovo tipo per le stringhe Unicode da applicare come OR bit per bit a PDO::PARAM_STR
  2. PDO::PARAM_STR_CHAR: un nuovo tipo per le stringhe non Unicode da applicare come operatore OR bit per bit a PDO::PARAM_STR
  3. PDO::ATTR_DEFAULT_STR_PARAM: da impostare su PDO::PARAM_STR_NATL o su PDO::PARAM_STR_CHAR per indicare un valore all'operatore OR bit per bit o a PDO::PARAM_STR per impostazione predefinita

A partire dalla versione 5.8.0, è possibile usare queste costanti con PDO::quote.

Valore restituito

Stringa tra virgolette che può essere passata a un'istruzione SQL o false in caso di errore.

Osservazioni:

Il supporto per PDO è stato aggiunto nella versione 2.0 dei driver Microsoft per PHP per SQL Server.

Esempio di string escape

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

Esempio di PDO quote

Lo script seguente mostra alcuni esempi di come i tipi di stringhe estesi influiscono su PDO::quote() con PHP 7.2 e versioni successive.

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

Vedi anche

Classe PDO

PDO