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 :

Requête de modification [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut Requête de modification
    Hi all,

    J'ai récemment rajouté quelques champs à un formulaire, cela ne fonctionnait pas au début, et j'ai fait des test, les champs sont très bien renvoyé etc, mais un problème se passe au niveau de la requête d'update:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $query1="UPDATE Cruiseboat SET name='".$name."', usname='".$usname."', dename='".$dename."', esname='".$esname."', type=\"$type\", passenger=$passenger,
    			 typeprog='".$typeprog."', ustypeprog='".$ustypeprog."', detypeprog='".$detypeprog."', estypeprog='".$estypeprog."', 
    			 intro='".$introcor."', usintro='".$usintrocor."', deintro='".$deintrocor."', esintro='".$esintrocor."',
    			  descriptif='".$descriptifcor."', usdescriptif='".$usdescriptifcor."', dedescriptif='".$dedescriptifcor."', esdescriptif='".$esdescriptifcor."',
    			   caracteristic='".$caracteristiccor."', uscaracteristic='".$uscaracteristiccor."', decaracteristic='".$decaracteristiccor."', escaracteristic='".$escaracteristiccor."',
    			    tarif='".$tarif."', tarif_us=\"$tarif_us\", tarif_de=\"$tarif_de\",
    				 condition='".$conditioncor."', uscondition='".$usconditioncor."', decondition='".$deconditioncor."', escondition='".$esconditioncor."',
    				  nbremax=\"$nbremax\", nbremin=\"$nbremin\" WHERE ID=$ID";
     
    $result=mysql_query ($query1, $mysql_link);
    La requête fonctionnait avant l'ajout des champ "es", ils existent bien dans la base de données, j'ai vérifié les noms, ce sont les mêmes, que ce soit dans la base ou dans le formulaire

    Voyez vous une erreur ?

    Merci pour vos réponses !

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Commence par donner le message d'erreur MYSQL ca sera beaucoup plus simple...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $result=mysql_query ($query1, $mysql_link);
    if(!$result)
    {
    die ("Erreur SQL<br/>Requete: $query1<br/>Erreur : " . mysql_error());
    }

  3. #3
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Oui désolé, décidément je manque réflexion , sinon merci koopajah, tu devrai intégré l'équipe développez.com vu ton omniprésence sur les forums,

    sinon voici l'erreur dites:
    Erreur : You have an error in your SQL syntax near 'équipage : 1 cabine avant avec cabinet de toilette. Au milieu, carré central : ' at line 4
    Je suis un

    Erreur de quotes

    Pourtant je pensais que ce que j'avais mis était correct, au départ j'avais choisi ce type là parce qu'il me semble que certain caractères ne sont pas pris si on écrit ainsi : variable =\"$variable\"

    Quelqu'un pourrait-il m'éclairé sur ce point ? sur la notion de quotes et doubles quotes dans les requêtes, etc.

  4. #4
    Membre chevronné Avatar de BornBanane
    Homme Profil pro
    dev
    Inscrit en
    Mars 2007
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Mars 2007
    Messages : 284
    Par défaut
    dans ta requete met à la palce des $variables des addslashes($variables) ca résoudra sans doute ton problème.

    Sinon pour les " et les ' sache que le texte entre deux " est interprété alors que celui entre ' ne l'est pas.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $var = 'toto';
    echo $var; //affiche : toto;
    echo "$var"; //affiche : toto;
    echo '$var'; // affiche $toto;

  5. #5
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    Donc si je comprend bien, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    addslashes($description);
     
    $query1="UPDATE Cruiseboat SET description='".$description."' WHERE ID=$ID";
    Alors tout ce qui est quote ou double quote sera bien interprétés et ne gênera en rien la requête d'insertion ou d'update ?

    Mais cela veut dire qu'il va falloir pour l'affichage que j'ajoute un stripslashes() ?

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    C'est l'idée, hormis que j'utiliserai plutot mysql_real_escape_string() plutot que addslashes.

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Citation Envoyé par mLk92
    Donc si je comprend bien, si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    addslashes($description);
     
    $query1="UPDATE Cruiseboat SET description='".$description."' WHERE ID=$ID";
    Certainement pas !!! addslashes ne modifie pas son paramètre : elle renvoie une nouvelle chaîne. Comme l'a dit Koopajah, mysql_real_escape_string est plus appropriée que addslashes.

    Citation Envoyé par mLk92
    Alors tout ce qui est quote ou double quote sera bien interprétés et ne gênera en rien la requête d'insertion ou d'update ?
    Oui.

    Citation Envoyé par mLk92
    Mais cela veut dire qu'il va falloir pour l'affichage que j'ajoute un stripslashes() ?
    Non, ne sont échappés que les caractères spéciaux pour la requête MySQL donc il n'apparaitront pas dans les données stockées et pas non plus lorsque vous récupèrerez ces données. S'il y a des backslashes qui apparaissent il faut chercher du côté des magic_quotes.

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

Discussions similaires

  1. [AC-2010] actualiser requête après modif table
    Par Shabby dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 16/01/2013, 08h44
  2. Réponses: 1
    Dernier message: 09/06/2011, 06h14
  3. [AC-2002] Requête de modification ne s'exécute pas avec VBA
    Par rockin-bones dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/05/2011, 13h09
  4. [AJAX] Requête de modification
    Par goofyrocks dans le forum AJAX
    Réponses: 8
    Dernier message: 30/04/2009, 09h52
  5. Requête Action Modification
    Par curt dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/03/2008, 16h58

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