Opérateur inconnu
Résolu
danielos77
Messages postés
108
Date d'inscription
Statut
Membre
Dernière intervention
-
danielos77 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
danielos77 Messages postés 108 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Malgré une recherche sur les manuels de PHP (et Google), je n'ai pas trouvé la réponse...
Quelle est la signification de cet opérateur '=:' dans cette requête qui m'a été communiquée ?
en sachant que Nom, Prenom et Num sont des champs d'une table et que num une chaine issue d'un $_POST reçu d'un formulaire précédent.
Ce n'est ni un opérateur d'affectation, ni de comparaison. Du moins dans la liste de la documentation.
Désolé d'être tant ignorant et de chercher à comprendre (bon après, je me dis que je ne dois pas être le premier retraité à essayer de taper sur un clavier...).
--
Malgré une recherche sur les manuels de PHP (et Google), je n'ai pas trouvé la réponse...
Quelle est la signification de cet opérateur '=:' dans cette requête qui m'a été communiquée ?
$sql = "SELECT DISTINCT Nom, Prenom FROM Inscriptions WHERE Num=:num ";
en sachant que Nom, Prenom et Num sont des champs d'une table et que num une chaine issue d'un $_POST reçu d'un formulaire précédent.
Ce n'est ni un opérateur d'affectation, ni de comparaison. Du moins dans la liste de la documentation.
Désolé d'être tant ignorant et de chercher à comprendre (bon après, je me dis que je ne dois pas être le premier retraité à essayer de taper sur un clavier...).
Configuration: Windows / Firefox 75.0 / PHP 5.6.34
--
A voir également:
- Opérateur inconnu
- Numero inconnu - Guide
- Opérateur de réseau mobile - Guide
- 0466 quel opérateur - Forum Mobile
- 0668 quel opérateur ✓ - Forum Mobile
- 0758 quel opérateur - Forum Opérateurs & Réseaux mobiles
1 réponse
Bonjour,
Pour effectuer des requêtes préparées en PDO tu peux
soit utiliser le point d'interrogation
ce qui implique que les "valeurs" à utiliser à la place de ces "?" soient remplacées par un array (l'ordre dans lequel tu marques les valeurs correspond à l'ordre des "?" dans la requête
L'autre solution est d'utiliser des variables nommées.
ici... ce n'est pas "=:" mais ":num"
En reprenant mon exemple, ça donne :
et le remplacement se fait à l'aide d'un array associatif
qui fonctionne également si je change l'ordre
Pour effectuer des requêtes préparées en PDO tu peux
soit utiliser le point d'interrogation
$sql = " SELECT * FROM tatable WHERE champ1 = ? OR champ2 = ? ";
ce qui implique que les "valeurs" à utiliser à la place de ces "?" soient remplacées par un array (l'ordre dans lequel tu marques les valeurs correspond à l'ordre des "?" dans la requête
$data = array(10,'truc');
L'autre solution est d'utiliser des variables nommées.
ici... ce n'est pas "=:" mais ":num"
En reprenant mon exemple, ça donne :
$sql = " SELECT * FROM tatable WHERE champ1 = :variable1 OR champ2 = :variable2 ";
et le remplacement se fait à l'aide d'un array associatif
$data = array(":variable1"=> 10 ,":variable2"=>'truc');
qui fonctionne également si je change l'ordre
$data = array( ":variable2"=>'truc' , ":variable1"=> 10);
Je recherchais justement mon post pour dire que j'avais trouvé un exemple et que j'avais compris que :num était en fait un contenant qui prenait les valeurs du champ Num et qu'ensuite dans le tableau des résultats, on garderait les datas de ce contenant qui auraient pour valeur notre variable issue du $_POST.
ça avance...
Un grand merci à toi.
Daniel