Datensätze ändern.

visiondpc

Erfahrenes Mitglied
Hallo.

Das ist jetzt schon mein 2. problem heute:(

Der Inhalt meiner DB läßt sich über PHP nicht über ein Formular ändern.
Die Daten vom Formular werden korrekt übergeben. hab ich schon getestet.

PHP:
mysql_connect(  );
mysql_select_db( "SUM" );
$getid = $_POST['getid']; // ID des zu ändernden Datensatzes
$editedheadline = $_POST['headlinetoedit']; //Spalte 1
$editedtext = $_POST['eintragtoedit']; // Spalte 2
$ressaveedit = "update themen set Titel = '$editedheadline', Inhalt = '$editedtext' WHERE ID = $getid";
mysql_query($ressaveedit);
$count = mysql_affected_rows();
echo $count;

Ich bekomme lediglich die Rückmeldung, das "-1" Datensatz geändert wurde.
Hat jemand eine Idee woran es liegen könnte?

Danke schonmal im Vorraus.
 
Hey,

Versuch es mal mit
PHP:
echo $ressaveedit;
und check ma ob alles richtig gemacht wird.

MFG,
meni
 
GehHi!ört das nicht ins SQL-Forum? Egal.

Spaltennamen müssen in "`" angegeben werden, also
Code:
`Spalte`
Tabellennamen müssen, glaub ich, auch in Anführungszeichen angegeben werden

Ausserdem ist es Möglich, SQL-Code einzuschleisen (SQL injection), sehr unsicher. Mach für jede Variable noch ein mysql_real_escape_string().

Azi
 
Stimmt. Danke für den Tip. Ich hatte vergessen die ID richtig zu übergeben deshalb wußte der nicht welchen Beitrag er ändern sollte.
 
Hallo,

Azi hat gesagt.:
Spaltennamen müssen in "`" angegeben werden, also
Code:
`Spalte`
Tabellennamen müssen, glaub ich, auch in Anführungszeichen angegeben werden
Müssen? Nein (mit Ausnahmen).
Können? Ja.
Sollten? Unbedingt :)

Zum Hintergrund (für alle, die es noch nicht wussten): Bezeichner (dazu gehören Spaltennamen, Tabellennamen, Datenbanknamen, Aliasnamen…) können im Grunde frei gewählt werden. Problematisch wird es nur, wenn ein Bezeichner mit einem Schlüsselwort von MySQL (wie SELECT, SET, INT, FROM, ORDER etc.) kollidiert. MySQL nimmt dann nämlich immer an, dass es sich um das entsprechende Schlüsselwort handelt, auch wenn eigentlich ein Bezeichner gemeint wurde. Um explizit eine Zeichenfolge als Bezeichner zu markieren, verwendet man deshalb Backticks (`) und vermeidet so eventuelle Missverständnisse.

Unbedingt nötig ist das Setzen von Backticks also nur, wenn Verwechslungsgefahr besteht (oder der Bezeichner ein Leerzeichen enthält, aber das ist sowieso nicht zu empfehlen) – trotzdem empfiehlt es sich, die Backticks immer zu setzen, um somit unangenehmen Überraschungen von vorneherein aus dem Weg zu gehen.

Grüße,
Matthias
 
Zurück