Maison >développement back-end >Problème PHP >Comment implémenter une requête paramétrée php pdo
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=...".
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('SELECT * FROM fruit WHERE calories < ?;'); $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('SELECT * FROM fruit WHERE calories < ?;'); $sm->execute(array($calories));
Le remplacement de plusieurs paramètres est le suivant
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?, id < ?;'); $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!