php
  • mysql
  • sql
  • 2013-02-21 4 views 0 likes 
    0

    Je crée un site et j'ai des problèmes avec la page de mise à jour. La page met à jour les publications existantes.Ma table SQL ne sera pas mise à jour

    Voici le code qui échoue:

    $result = mysql_query("UPDATE php_blog SET timestamp='$timestamp', 
    title='$title', entry='$entry', WHERE id='$id' LIMIT 1") or die(mysql_error()); 
    

    Lorsque j'appuie sur le bouton « mise à jour » sur mon formulaire, je reçois ce message SQL:

    Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'WHERE id =' 9 'LIMIT 1' à la ligne 1

    mais je n'ai aucune idée de ce que cela signifie. J'ai vérifié cet endroit mais je ne trouve rien de mal ... Aide? Merci

    +2

    Vous avez une virgule supplémentaire - supprimez la virgule avant O WH. – sgeddes

    +0

    WHERE id = 9 mets ceci –

    +1

    Veuillez considérer utiliser des instructions préparées. – bernie

    Répondre

    2

    Vous avez une virgule supplémentaire avant votre instruction WHERE. Votre SQL devrait ressembler à ceci:

    UPDATE php_blog 
    SET timestamp='$timestamp', title='$title', entry='$entry' 
    WHERE id='$id' LIMIT 1 
    

    S'il vous plaît noter, les fonctions de mysql_ ont été désapprouvés:

    http://php.net/manual/en/function.mysql-query.php

    +0

    Merci compagnon :) Travaillé: D – Hackermaan

    +0

    @ user2096683 - pas de problème, content que nous pourrions aider :) – sgeddes

    1

    Retirez la virgule avant WHERE:

    $result = mysql_query("UPDATE php_blog SET timestamp='$timestamp', 
        title='$title', 
        entry='$entry' WHERE id='$id' LIMIT 1") 
        or die(mysql_error()); 
    
    +0

    Wow! Merci l'homme :) A travaillé: D Je t'aime! – Hackermaan

    0

    enlever la virgule avant la WHERE clause comme ça

    $result = mysql_query("UPDATE php_blog SET timestamp='$timestamp', title='$title',entry='$entry' WHERE id='$id' LIMIT 1") or die(mysql_error()); 
    
    0

    La question à votre réponse: Supprimer la virgule avant le WHERE

    Mais vous êtes chanceux, vous avez ce problème et postez ici. Votre code est très vulnérable et vous devriez vraiment apprendre à utiliser les instructions préparées.

    Aussi google "injection SQL" pour comprendre le problème.

    Questions connexes