Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zpracovává řetězec pro použití v dotazu tím, že kolem vstupního řetězce umístí uvozovky podle požadavků základní databáze SQL Server. PDO::quote unikne speciálních znaků uvnitř vstupního řetězce pomocí citovacího stylu vhodného pro SQL Server.
Syntax
string PDO::quote( $string[, $parameter_type ] )
Parametry
$ Struna: Struna k citaci.
$ parameter_type: Volitelný (celočíselný) symbol označující datový typ. Výchozí je PDO::P ARAM_STR.
V PHP 7.2 byly zavedeny nové PDO konstanty, aby se přidala podpora pro vazbu Unicode a ne-Unicode řetězců. Unicode řetězce lze obklopit uvozovkami s předponou N (tj. N'string' místo 'string').
- PDO::P ARAM_STR_NATL - nový typ Unicode řetězců, který se aplikuje jako bitově NEBO na PDO::P ARAM_STR
- PDO::P ARAM_STR_CHAR - nový typ pro řetězce mimo Unicode, který se používá jako bitový NEBO pro PDO::P ARAM_STR
- PDO::ATTR_DEFAULT_STR_PARAM - nastavte buď na PDO::P ARAM_STR_NATL nebo PDO::P ARAM_STR_CHAR pro označení hodnoty jako bit-NEBO na PDO::P ARAM_STR ve výchozím nastavení
Od verze 5.8.0 můžete tyto konstanty používat s PDO::quote.
Návratová hodnota
Úvodní řetězec, který lze předat SQL příkazu, nebo nepravdivý pokud selže.
Remarks
Podpora PDO byla přidána ve verzi 2.0 Microsoft Drivers for PHP for SQL Server.
Příklad úniku řetězce
<?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));
?>
Příklad citátu z PDO
Následující skript ukazuje několik příkladů, jak rozšířené typy řetězců ovlivňují PDO::quote() v 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'
?>