Bonjour,
J'utilise mysqli pour accéder à ma base de données.
Quand je fais des requêtes préparées avec le marqueur ?, ça fonctionne :
J'ai le résultat suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // //Nouvel objet connexion = créer la connexion $connexion = new mysqli($CONFIG['dbhost'], $CONFIG['dbuser'], $CONFIG['dbpassword'], $CONFIG['dbname']); //Tester connexion if ($connexion->connect_error) { exit('Erreur de connexion ' . $connexion->connect_error . '<br>'); } else { printf('Connexion ok <br>'); } //Préparer la requête $requete = $connexion->prepare('SELECT sigle, cf FROM glossaire_donnees WHERE no LIKE ?'); if (!$requete) { exit('Erreur de préparation de requête ' . $connexion->connect_error . '<br>'); } else { printf('Requête préparée ok <br>'); }
Ça ne fonctionne pas si j'utilise un marqueur nomméConnexion ok
Requête préparée ok
J'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //Préparer la requête $requete = $connexion->prepare('SELECT sigle, cf FROM glossaire_donnees WHERE no LIKE :no');
J'ai cherché un peu partout, en vain...Connexion ok
Erreur de préparation de requête
Les marqueurs nommés ne fonctionnent pas avec mysqli ?
Je trouve que le code est plus clair et plus souple avec les marqueurs nommés mais j'ai trouvé peu d'exemples, ça ne semble pas utilisé : il y a une raison ?
Merci pour vos éléments de réponse.
Nb : hébergement Hostinger, MYSQL v10.5, PHP Version 7.4.26
Partager