Maison >développement back-end >Problème PHP >Comment implémenter une requête paramétrée php pdo

Comment implémenter une requête paramétrée php pdo

藏色散人
藏色散人original
2021-09-20 10:16:512155parcourir

En PHP, vous pouvez utiliser la méthode prepare pour effectuer des requêtes paramétrées PDO. Cette méthode renverra un objet PDOStatement, en utilisant une syntaxe telle que "prepare('SELECT login_oid FROM connecté WHERE user_id=...".

Comment implémenter une requête paramétrée php pdo

Le fonctionnement de cet article Environnement : système Windows 7, PHP7.1, ordinateur Dell G3

Comment implémenter une requête paramétrée dans php pdo ?

La requête paramétrée PDO prepare() php empêche l'injection SQL

Requête paramétrée. dans PDO utilise principalement la méthode prepare(), puis cette méthode renverra un objet PDOStatement, qui est une instruction SQL (je ne sais pas comment la traduire). Pour le moment, l'instruction SQL est uniquement compilée, mais pas exécutée).

$sm = $db->prepare('SELECT login_oid FROM logined WHERE user_id=:user_id;');
$sm->bindValue(':user_id', $user_id, PDO::PARAM_INT);
$sm -> execute();

Avant d'exécuter(), vous pouvez appeler la méthode bindValue() ou bindParam() pour remplacer les paramètres que vous avez spécifiés. dans l'instruction SQL préparée précédemment. Il existe deux manières de spécifier des paramètres dans l'instruction SQL : ':name' et ' ?', la première méthode est utilisée dans le code ci-dessus et la seconde méthode est :

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$sm->bindValue(1, $calories, PDO::PARAM_INT);
$sm->execute();

bindValue() a trois paramètres, le premier spécifie quel paramètre de l'instruction SQL doit être remplacé et le second spécifie le remplacement. Après la valeur, le troisième spécifie le type de la valeur. La correspondance de type est la suivante :

PDO::PARAM_BOOL

. Type booléen

PDO::PARAM_NULL

Type NULL

PDO::PARAM_INT

Type entier

PDO::PARAM_STR

Types de chaîne tels que CHAR, VARCHAR, string

PDO::PARAM_LOB

Objet volumineux de classe de ressources, tels que des fichiers, etc.

PDO::PARAM_STMT

Je ne sais pas

PDO::PARAM_INPUT_OUTPUT

Ceci semble être un type étendu

Il n'y a pas de type de nombre réel fourni, ce qui est très surprenant.

Parlons de la méthode exécuter() Elle peut également effectuer une substitution de paramètres, mais elle modifiera les types de toutes les valeurs. ​​en types de chaînes, comme suit

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?;&#39;);
$sm->execute(array($calories));

Le remplacement de plusieurs paramètres est le suivant

$sm = $db->prepare(&#39;SELECT * FROM fruit WHERE calories < ?, id < ?;&#39;);
$sm->execute(array($calories, $user_id));

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn