yalestorm
Themenersteller
Neuling (1 Beiträge)

Fehler beim Ändern von Datensätzen

am 29.05.2011, 15:49 Uhr eröffnete yalestorm folgenden Thread
PHP & MySQL    781 mal gelesen    1 Antwort(en).

Hey,

ich habe ne Seite wo ich Datensätze ändern muss, bekomm aber folgenden Fehler:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in B:\xampp\htdocs\bibo\func\uchange.php on line 40

Hier kommt alles was ab der Zeile 40 ist:

$abfrage2 = "UPDATE " . $tabname . " SET user = '" . $usernew . "', pwddb = '" . $pwddbnew . "', vname ='" . $vnamenew . "', nname ='" . $nnamenew .'" WHERE id = " . $wert . "";
$erg2 = mysql_db_query("$dbname",$abfrage2,$verbindung);
or die ("Fehler mit der Datenbank" . mysql_error());
mysql_close ($verbindung) ;
echo "Die Daten wurden erfolgreich geändert";

hoffe ihr könnt mir helfen.

MFG
Daniel


UFOMelkor
Avatar UFOMelkor
Student
Content Meister (350 Beiträge)
am 29.05.2011, 16:25 Uhr schrieb UFOMelkor

Hi Daniel,

ich würde dir zu einem Editor mit Syntax-Highlighting raten, da sieht man solche Fehler recht schnell.

Der Fehler liegt hier
$nnamenew .\'" WHERE id = " . $wert . "";
Korrekt wäre:
$nnamenew ."\' WHERE id = " . $wert . "";
Achte auf die Unterscheidung von single- und double-quotes.

Zwei Zeilen später findet sich allerdings noch ein Fehler:

$erg2 = mysql_db_query("$dbname",$abfrage2,$verbindung);
or die ("Fehler mit der Datenbank" . mysql_error());


Richtig wäre:
$erg2 = mysql_db_query("$dbname",$abfrage2,$verbindung) or die ("Fehler mit der Datenbank" . mysql_error());

Davon ab gibt es noch ein paar Unschönheiten:
. $wert . "";
Ein "" am Ende bewirkt nichts. Das . "" kannst du also weglassen.

$erg2 = mysql_db_query("$dbname",$abfrage2,$verbindung);
$dbname enthält mit hoher wahrscheinlichkeit bereits einen String und wenn nicht, wandelt PHP intern automatisch um. Statt "$dbname" reicht also $dbname.

$abfrage2 = "UPDATE " . /...
Innerhalb von double-quotes werden Variablen ausgewertet. Du kannst also zur Verbesserung der Lesbarkeit auf das ständige Öffnen und Schließen der double-quotes verzichten:
$abfrage2 = "UPDATE $tabname SET user = \'$usernew\', pwddb = \'$pwddbnew\', vname =\'$vnamenew\', nname =\'$nnamenew\' WHERE id = $wert";

Davon ab noch eine Frage zur Sicherheit: Wo kommt der Inhalt der ganzen Variablen her? Wenn sie vom User (z.B. über ein Formular) gesetzt werden können, validierst du sie vorher?


Naturkosmetik in Bochum

Steppenhahn Ultramarathon-Community

  • 1


« zurück zu: PHP & MySQL

Das Seitenreport Forum hat aktuell 5267 Themen und 36089 Beiträge.
Insgesamt sind 48169 Mitglieder registriert.