PDO::quote

Ladda ned PHP-drivrutin

Bearbetar en sträng för användning i en fråga genom att placera citattecken runt indatasträngen enligt krav från den underliggande SQL Server-databasen. PDO::quote kommer att undvika specialtecken inom inmatningssträngen med en citeringsstil som är lämplig för SQL Server.

Syntax

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

Parameters

$ string: Strängen för att citera.

$ parameter_type: En valfri (heltals) symbol som anger datatypen. Standardinställningen är PDO::P ARAM_STR.

Nya PDO-konstanter introducerades i PHP 7.2 för att lägga till stöd för att binda Unicode- och icke-Unicode-strängar. Unicode-strängar kan omges av citattecken med ett N som prefix (dvs. N'sträng' istället för 'sträng').

  1. PDO::P ARAM_STR_NATL - en ny typ för Unicode-strängar, som ska tillämpas som en bitvis ELLER på PDO::P ARAM_STR
  2. PDO::P ARAM_STR_CHAR – en ny typ för icke-Unicode-strängar, som ska tillämpas som en bitvis ELLER på PDO::P ARAM_STR
  3. PDO::ATTR_DEFAULT_STR_PARAM - ställ in antingen PDO::P ARAM_STR_NATL eller PDO::P ARAM_STR_CHAR för att indikera ett värde till bitwise-ELLER till PDO::P ARAM_STR som standard

Från och med version 5.8.0 kan du använda dessa konstanter med PDO::quote.

Returvärde

En citerad sträng som kan skickas till en SQL-sats, eller falsk om det misslyckas.

Remarks

Stöd för PDO lades till i version 2.0 av Microsoft Drivers för PHP för SQL Server.

Exempel på strängescape

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

Exempel på PDO-citat

Följande skript visar några exempel på hur utökade strängtyper påverkar PDO::quote() med 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'
?>