Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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'.
- PDO::PARAM_STR_NATL: Ein neuer Typ für Unicode-Zeichenfolgen. Dieser wird für bitweise-OR-Operationen gegen PDO::PARAM_STR verwendet.
- PDO::PARAM_STR_CHAR: Ein neuer Typ für Nicht-Unicode-Zeichenfolgen. Dieser wird für bitweise-OR-Operationen gegen PDO::PARAM_STR verwendet.
- 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'
?>