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 :

"erreur pré de" en UPDATE MySql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut "erreur pré de" en UPDATE MySql
    Bonjour,
    croyant maitriser Mysql, je butes sur une erreur jamais rencontrés a ce jour
    Ma requéte est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    $result=mysql_query( "UPDATE `0_dvd_jplyne` SET `DvdNum`=$Z_DvdNum,`DvdType`=$Z_DvdType,`DvdTitre`=$Z_DvdTitre,`DvdTri`=$Z_DvdTri,`r01`=$Z_r01,`r02`=$Z_r02,`r03`=$Z_r03,`r04`=$Z_r04,`r05`=$Z_r05,`r06`=$Z_r06,`r07`=$Z_r07,`r08`=$Z_r08 WHERE `DvdIndex`=$Z_DvdIndex" )  OR die(mysql_error());
    or j'ais cette erreur
    Erreur de syntaxe près de '`DvdTri`=2008-04-30,`r01`=VOB,`r02`=DIP,`r03`=,`r04`=,`r05`=,`r0' à la ligne 2

    Surtout que c'est une requéte a la ligne 76 ??

    Merci de votre aide.
    PS: bien entendu les variables sont contrôlées ET protégées par
    mysql_real_escape_string

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Est il autorisé de créer le nom d'une table commençant par un chiffre ? (0_dvd_jplyne)
    A titre personnel, et même instinctivement j'aurais évité ça.

    Et puis j'ai jamais vu l'intérêt d'utiliser des `. Je ne suis pas certain que ça protège quelque chose.
    Du moins, il me semble que c'est pour "forcer" l'utilisation d'un nom d'une table dans le cas où ce nom est réservé (même nom qu'une fonction par exemple).
    En tout cas il me semble que ce soit un moyen de mieux sécuriser une requête.
    Enfin, sauf erreur.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut.
    Bonjour et merci de ta réponse, bien sur la question n'est pas la,
    je viens de tester avec toto comme nom de table
    et j'ais retiré les "`"

    Donc ma question reste entiére

  4. #4
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Ces variables sont elles toutss des nombres (entier) ou des chaines de caractères ?
    On dirait que non, pas pour $Z_DvdTitre je suppose.
    Ne faudrait il pas mettre des quote entre les variables Php ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result=mysql_query( "UPDATE 0_dvd_jplyne SET DvdNum = '$Z_DvdNum', etc ...") or die(mysql_error());
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Tu as vérifier toutes tes variables, en commençant par $Z_r03 ?

    Sinon erreur ligne 2, c pas au niveau de requête uniquement j'ai déjà vu ça souvent vu que c une erreur 'au niveau de ....'
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Fench Voir le message
    Bonjour,
    Tu as vérifier toutes tes variables, en commençant par $Z_r03 ?
    Sinon erreur ligne 2, c pas au niveau de requête uniquement j'ai déjà vu ça souvent vu que c une erreur 'au niveau de ....'
    Oui je vois $Z_03="" , et c'est permis dans la table.
    Et merci pour l'info num de ligne ... compris !

    Citation Envoyé par RunCodePhp Voir le message
    Ces variables sont elles toutss des nombres (entier) ou des chaines de caractères ?
    On dirait que non, pas pour $Z_DvdTitre je suppose.
    Ne faudrait il pas mettre des quote entre les variables Php ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result=mysql_query( "UPDATE 0_dvd_jplyne SET DvdNum = '$Z_DvdNum', etc ...") or die(mysql_error());

    Je testes ça et te tiens au courant
    Merci a toi.

    REEDITE : ===> Super et bien vu, ça marche 100%
    Dernière modification par Invité ; 25/03/2010 à 08h57.

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Citation Envoyé par RunCodePhp
    Ne faudrait il pas mettre des quote entre les variables Php ?
    Il faut mettre des simples quote autours des valeurs sauf pour les entiers qui n'est pas obligatoire.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Bonjour,
    Il faut mettre des simples quote autours des valeurs sauf pour les entiers qui n'est pas obligatoire.
    Merci a toi, du reste tu as vu, le test a marché, ton afirmation me va biens, et elle rejoint un autre probléme caché dans ma question

    La mise a jour, objet de ma question ( cette discution) est le résultat d'un <FORM et justement il faut veiller a ta régle même dans les inputs

    Je n'arrivais plus a récupérer mon index qui était en hidden dans l'imput,
    justement parceque j'avais mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo ("<input ...... value='".$x."'   >");

    Merci encore a toi

  9. #9
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Tu le récupères avec $_POST['nameInput'] ou $_GET['nameInput'] selon la methode de ton fromulaire.

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

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