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 avec une requête SQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut Problème avec une requête SQL
    Bonjour,

    Sur un site je souhaite récupérer un nom de serveur à l'aide d'un champ select (par exemple : "\\serveur\répertoire\").
    Je récupère alors la donnée via un programme PHP et je met à jour la table avec la nouvelle donnée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $serveur=$_POST['serveur'];
    $sql="UPDATE table SET serveur=\"$serveur\" WHERE Serveur_Id=\"30\";";
    mysql_query("$sql");
    Cela exécute alors la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE table SET serveur="\\\\serveur\\répertoire\\" WHERE Serveur_Id="30";
    Et j'obtiens cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\\\\serveur\\répertoire\\")' at line 1
    Cependant lorsque je l'exécute "manuellement" en passant par phpMyAdmin, je n'ai pas se problème.

    Je n'ai aussi aucun problème pour les commande INSERT, il y a juste UPDATE qui déconne ....

    Une idée ? Merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    il faut toujours échapper les chaines insérées dans une requête.
    De plus en SQL on utilise des guillemets simples et pas rien pour les valeurs numériques.

    Fait attention également à l'état de Magic_quotes sur ton serveur qui ont l'air actifs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $serveur=mysql_real_escape_string($_POST['serveur']);
    $sql="UPDATE table SET serveur='$serveur' WHERE Serveur_Id=30;";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    Ok Merci mais j'ai suivi ce que tu m'a dit :

    - Désactiver Magic_quotes (dans php.ini)
    - Utilisation de cotes au lieu de guillemets
    - Utilisation de la fonction mysql_real_escape_string

    Mais rien n'y fait : toujours la même erreur

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Que vaut $serveur maintenant ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    $serveur vaut \\Frvilsfil12\Projets\
    et en utilisant mysql_real_escape_string cela transforme $serveur comme ceci :
    \\\\Frvilsfil12\\Projets\\

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    "table" est un mot reservé ; c'est une mauvaise idée d'avoir une table qui s'appelle "table".
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Petit problème avec une requête SQL en VB6
    Par muzele dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2007, 20h51
  2. Problème avec une requête sql
    Par mika0102 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 10/10/2007, 15h50
  3. [SQL] Problème avec une requête sql
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 22
    Dernier message: 11/05/2007, 17h30
  4. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  5. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47

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