Freigeben über


PDO::quote

PHP-Treiber herunterladen

Verarbeitet eine Zeichenfolge für die Verwendung in einer Abfrage, indem die Eingabezeichenfolge gemäß der zugrunde liegenden SQL Server-Datenbank in Anführungszeichen gesetzt wird. PDO::quote umgeht Sonderzeichen in der Eingabezeichenfolge unter Verwendung eines für den SQL Server geeigneten Zitierstils.

Syntax

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

Parameter

$string: Die zu zitierende Zeichenfolge

$parameter_type: Ein optionales Symbol (ganze Zahl), das den Datentyp angibt Der Standardwert ist PDO::PARAM_STR.

In PHP 7.2 wurden neue PDO-Konstanten eingeführt, für die Unterstützung der Bindung von Unicode- und Nicht-Unicode-Zeichenfolgen. Unicode-Zeichenfolgen können in Anführungszeichen stehen, mit einem „N“ als Präfix, d. h. N'string' anstatt 'string'.

  1. PDO::PARAM_STR_NATL: Ein neuer Typ für Unicode-Zeichenfolgen. Dieser wird für bitweise-OR-Operationen gegen PDO::PARAM_STR verwendet.
  2. PDO::PARAM_STR_CHAR: Ein neuer Typ für Nicht-Unicode-Zeichenfolgen. Dieser wird für bitweise-OR-Operationen gegen PDO::PARAM_STR verwendet.
  3. PDO::ATTR_DEFAULT_STR_PARAM: festgelegt auf entweder PDO::PARAM_STR_NATL oder PDO::PARAM_STR_CHAR, um anzugeben, welcher Wert standardmäßig für bitweise-OR-Operationen gegen PDO:PARAM_STR verwendet werden soll.

Ab Version 5.8.0 stehen Ihnen für PDO::quote folgende Konstanten zur Verfügung.

Rückgabewert

Eine an zitierte Zeichenfolge, die an eine SQL-Anweisung übergeben werden kann, oder "false", wenn ein Fehler auftritt.

Hinweise

Unterstützung für PDO wurde in Version 2.0 von Microsoft-Treiber für PHP für SQL Serverhinzugefügt.

Beispiel für ein Escape von Zeichenfolgen

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

Das folgende Skript enthält einige Beispiele für die Auswirkung erweiterter Zeichenfolgetypen auf PDO::quote() in PHP 7.2 und höher.

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

Weitere Informationen

PDO-Klasse

PDO