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 :
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>');
	}
J'ai le résultat suivant
Connexion ok
Requête préparée ok
Ça ne fonctionne pas si j'utilise un marqueur nommé
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 le résultat suivant :
Connexion ok
Erreur de préparation de requête
J'ai cherché un peu partout, en vain...
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