Alemarius Nexus: SQL Error bei UPDATE Query

Hallo SELFHTML Community.

Ich habe ein Problem in meinem Skript. Genauergesagt mit meinem UPDATE Query. Hier einfach mal das ganze Skrpt:

<?php

include "functions.php";

mysql_c();
if (check_admin_pass($_POST['pw']) == true) {

$sql = "UPDATE
   news
  SET
   autor = ".$_POST['autor'].",
   titel = ".$_POST['titel'].",
   news = ".$_POST['news']."
  WHERE
   ID=".$_POST['hid'];

mysql_query($sql) OR die(mysql_error());

echo "News mit dem Titel <b>".$_POST['titel']."</b> erfolgreich editiert!";
 echo "<b><a href="acp.php">Zurück zum ACP</a></b>";

}

?>

das Script bekommt die ganzen Post Variablen geliefert und soll sie durch die alten Werte ersetzen. Es kommt aber ein SQL Syntax Error in  Zeile 5 des Queries. Was ist daran falsch? Bestimmt wieder irgendetwas am Übergang vom String zur Variablen, bei Queries hat das bei mir nie wirklich funktioniert. Jetzt schonmal vielen Dank für die Hilfe!

  1.   
    
    > $sql = "UPDATE  
    >    news  
    >   SET  
    >    autor = ".$_POST['autor'].",  
    >    titel = ".$_POST['titel'].",  
    >    news = ".$_POST['news']."  
    >  WHERE  
    >    ID=".$_POST['hid'];  
    
    

    Moin Alemarius,

    also zuerst mal: Eingabestrings müssen in Queries in Anführungsstrichen stehen - und zwar so, daß die Anführungsstriche auch beim Erstellen des Querys erhalten bleiben. Schließlich muß MySQL wissen, wo z.B. der Titel anfängt und wo er aufhört.
    ( [...] titel = '".$variable."' [...] )

    ABER: Du willst tatsächlich einfach so Übergabevariablen an MySQL weitergeben? - Unmaskiert, ungeprüft?

    Bitte informier Dich über die Funktion mysql_real_escape_string().

    http://de3.php.net/mysql_real_escape_string

    Schaue Dir dort auch die Beispiele an.

    Schönen Gruß!