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

Langage PHP Discussion :

UPDATE qui ne fonctionne pas.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 13
    Points
    13
    Par défaut UPDATE qui ne fonctionne pas.
    Bonjour amis développeurs !

    Je viens vers vous aujourd'hui car j'ai un problème très étrange concernant un tout petit script php de mon site. Il s'agit d'un UPDATE dans ma base de données, rien d'extraordinaire, sachant qu'il existe d'autre script de ce genre sur mon site, mais la il se trouve que cela ne fonctionne pas.

    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
    20
    21
    <?php
    session_start();
    include('../config.php');
    $key = $_GET['key'];
    try
    {// on se connecte à MySQL 
    $db = mysql_connect($db_server, $db_username, $db_password); 
     
    // on sélectionne la base 
    mysql_select_db($db_name,$db); 
    }
    catch(Exception $e)
    {die('Erreur : '.$e->getMessage());}
     
    mysql_query('UPDATE video SET vignette=\'0\' WHERE key=\''.$key.'\'');
     
    mysql_close($db);
     
    echo 'Vignette ajoutée avec succès';
     
    ?>
    Ici, l'UPDATE ne fonctionne pas, mais aucune erreur n'est retourné, comme si le script c'était effectué avec succès, ce qui n'est pas le cas.

    J'ai un second script du même genre mais avec une autre requête qui elle fonctionne parfaitement.

    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
    20
    21
    <?php
    session_start();
    include('../config.php');
    $name = $_POST['name'];
    $id = $_GET['id'];
    try
    {// on se connecte à MySQL 
    $db = mysql_connect($db_server, $db_username, $db_password); 
     
    // on sélectionne la base 
    mysql_select_db($db_name,$db); 
    }
    catch(Exception $e)
    {die('Erreur : '.$e->getMessage());}
     
    mysql_query("UPDATE category SET name='".$name."' WHERE id='".$id."'");
     
    mysql_close($db);
     
    header('Location: category.php?type=category');
    ?>
    Ainsi, d'où peut venir le problème ?

    Merci d'avance !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = 'UPDATE video SET vignette=\'0\' WHERE key=\''.$key.'\'';
     
    echo $sql;
    et teste ta requête dans PhpMyAdmin voir si elle fonction.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Tout d'abord, merci pour ta réponse rapide.

    Voici la réponse de Phpmyadmin :
    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 'key='moskau'' at line 1

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Tu es sûr de la structure de ta table, des colonnes...
    key est un mot réservé par MYSQL d'où l'erreur, tu ne devrais pas l'utiliser.
    Et avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE video SET vignette='0' WHERE `key` = '".mysql_real_escape_string($key)."'";

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    En effet, j'avais pas tilté que "key" était une variable utilisé par Mysql.

    Ça fonctionne donc désormais avec les `.

    Merci beaucoup à vous deux !

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,
    enfin pour compléter, avant de déclencher ta requête(UPDATE) il faut faire un contrôle sur la variable reçue($_GET ) si elle existe et n'est pas vide.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(!empty($_GET['key'])){
    $sql = "UPDATE video SET vignette='0' WHERE `key` = '".mysql_real_escape_string($_GET['key'])."'";
    mysql_query($sql);
     
    }else{
    echo "variable non définie";
    }

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

Discussions similaires

  1. [MySQL] Update qui ne fonctionne pas
    Par Pissou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/03/2008, 15h16
  2. [MySQL] Code PHP sur des UPDATE qui ne fonctionne pas
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2007, 11h57
  3. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  4. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  5. [MySQL] UPDATE qui ne fonctionne pas
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2005, 14h35

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