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 :

problème de syntaxe des requêtes sql au sein d'un code php


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 3
    Points : 6
    Points
    6
    Par défaut problème de syntaxe des requêtes sql au sein d'un code php
    SalamoAlaykom
    Svp je suis entrain de développer une application web en php

    Supposant qu'on a deux tables:
    fonctionnaire(ID,GRADEACTUEL,STATUT)
    grade(ID,DESIGNATION)

    Dans mon fichier php j’écris par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql2="SELECT * FROM fonctionnaire WHERE STATUT='En service' ";
    $res2=mysqli_query($cnx,$sql2)or die(mysqli_error($cnx));
     
    while($row2=mysqli_fetch_array($res2)){
               $res6=mysqli_query($cnx,"SELECT ID FROM grade WHERE DESIGNATION = ' ".$row2['GRADEACTUEL']." ' ")or die(mysqli_error($cnx));
               $row6=mysqli_fetch_array($res6);
    }
    Tous va comme je veux jusqu'à présent

    Le problème quand $row2['GRADEACTUEL'] contient une valeur dont un apostrophe comme AZ'erty
    on me donne l'erreur suivante: Erreur de syntaxe près de 'erty'' à la ligne 1

    Vous allez me dire remplacez ' par " et " par '
    Le problème c'est que j'ai un tas de fichiers qui contiennent des requêtes de ce type

    y'a t il une autre solution plus pratique

    Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Oui : les requêtes préparées.


    Sinon utiliser mysqli_real_escape_string()
    Dernière modification par Invité ; 08/09/2015 à 11h14.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En fait, vu que tu es dans une boucle, utiliser une requête préparée aurait également l'avantage d'optimiser un chouia ton code : tu la prépares une fois et tu l'exécutes autant de fois qu'il ya de tours de boucle.

    Mais, bon, si tu dois repasser sur chaque requête de ton code, utiliser mysqli_real_escape_string prendrait sans doute moins de temps de dév'.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    à priori ici, on peut aussi utiliser une seule requête, avec JOINTURE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql2 = "SELECT F.ID, F.GRADEACTUEL, F.STATUT, G.ID, G.DESIGNATION
    	FROM fonctionnaire F
    	INNER JOIN grade G
    	 ON F.GRADEACTUEL = G.DESIGNATION
    	WHERE STATUT='En service' ";
    $res2 = mysqli_query($cnx,$sql2)or die(mysqli_error($cnx));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/08/2014, 12h45
  2. syntax des requêtes Sql selon les données à traiter
    Par pra3t0r dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/06/2011, 22h53
  3. Problème de syntaxe dans requête SQL
    Par soprano6217 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/06/2009, 15h49
  4. Réponses: 2
    Dernier message: 24/04/2007, 00h18

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