2009-03-22 8 views
1

J'ai une base de données MySQL avec laquelle je travaille, mais quand j'essaye de mettre à jour une ligne, ça ne marche pas. Voici le code de mise à jour, je travaille avec:Comment mettre à jour une ligne MySQL en PHP?

mysql_query("UPDATE offtopic SET next = '$insert' WHERE id = '$id'"); 

Répondre

5

Tout d'abord, vous devriez faire un peu plus en sécurité:

mysql_query(sprintf("UPDATE offtopic SET next = '%s' WHERE id = '%s'", 
      mysql_real_escape_string($insert), 
      mysql_real_escape_string($id)); 

Maintenant, est votre id en fait la chaîne, et non numérique? Si son numérique, vous devriez plutôt avoir:

mysql_query(sprintf("UPDATE offtopic SET next = '%s' WHERE id = %d", 
      mysql_real_escape_string($insert), $id); 
+0

Le premier devrait fonctionner même si id est un numérique et aussi plus sûr - au cas où quelqu'un parviendrait à obtenir des non-nombres dans la variable. – Brimstedt

5

votre syntaxe est correcte, il est peut-être une erreur avec les variables ou vos noms de champ.

Essayez ceci:

$sql = "UPDATE offtopic SET next = '$insert' WHERE id = '$id'"; 
if (!mysql_query($sql)) { 
    echo "MySQL Error: " . mysql_error() . "<br />" . $sql; 
} 

Cela pourrait vous montrer des informations utiles pour vous aider à déboguer.

1

S'il vous plaît, pour l'amour de l'Internet, ne construit pas SQL vous interroger. Utilisez PDO.

Questions connexes