PDO::quote
Traite une chaîne à utiliser dans une requête en plaçant des guillemets autour de la chaîne d’entrée comme l’exige la base de données SQL Server sous-jacente. PDO::quote échappe les caractères spéciaux dans la chaîne d’entrée à l’aide d’un style approprié à SQL Server.
Syntaxe
string PDO::quote( $string[, $parameter_type ] )
Paramètres
$string : chaîne à placer entre guillemets.
$parameter_type : symbole (entier) facultatif indiquant le type de données. La valeur par défaut est PDO::PARAM_STR.
De nouvelles constantes PDO ont été introduites dans PHP 7.2 pour prendre en charge la liaison des chaînes Unicode et non-Unicode. Les chaînes Unicode peuvent être placées entre guillemets avec N comme préfixe (par exemple, N'string' au lieu de 'string').
- PDO::PARAM_STR_NATL - nouveau type de chaînes Unicode à appliquer comme opérateur au niveau du bit - ou à PDO::PARAM_STR
- PDO::PARAM_STR_CHAR - nouveau type de chaînes non-Unicode à appliquer comme opérateur au niveau du bit - OU à PDO::PARAM_STR
- PDO::ATTR_DEFAULT_STR_PARAM - définir sur PDO::PARAM_STR_NATL ou PDO::PARAM_STR_CHAR pour indiquer une valeur au niveau du bit OU à PDO::PARAM_STR par défaut
À partir de la version 5.8.0, vous pouvez utiliser ces constantes avec PDO::quote.
Valeur de retour
Chaîne entre guillemets qui peut être passée à une instruction SQL, ou false en cas d’échec.
Notes
La prise en charge de PDO a été ajoutée dans la version 2.0 de Pilotes Microsoft SQL Server pour PHP.
Exemple d’échappement de chaîne
<?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));
?>
Exemple PDO quote
Le script suivant montre quelques exemples de la façon dont les types de chaînes étendus affectent PDO::quote() avec 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'
?>
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour