IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

mysqli requête préparée et marqueurs nommés


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 42
    Par défaut mysqli requête préparée et marqueurs nommés
    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

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 342
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 342
    Billets dans le blog
    17
    Par défaut
    mysqli ne semble pas supporter les marqueurs nommés.
    PDO les supporte.

    query
    La requête, sous la forme d'une chaîne de caractères.
    Ce paramètre peut inclure un ou plusieurs paramètres de marques dans la requête SQL avec le caractère "point d'interrogation" (?) à la position appropriée.
    https://www.php.net/mysqli_prepare

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    il faut utiliser PDO.
    C'est le standard.

Discussions similaires

  1. Modifier des requêtes MySQLi en requêtes préparées PDO
    Par cheboy dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/01/2021, 20h29
  2. Marqueur nommé ou interrogatif pour les requetes préparées ?
    Par sff dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/01/2019, 11h56
  3. Réponses: 2
    Dernier message: 30/09/2011, 12h00
  4. [MySQL] [Mysqli] Afficher une requête préparée ?
    Par Shinosha dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/08/2011, 15h16
  5. [PDO] Ma requêtes préparées me retourne false
    Par jeff_! dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/05/2006, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo