Fehler beim Ändern von Datensätzen

Verfasst am: 29. 05. 2011 [15:49]
yalestorm
Dabei seit: 21.04.2011
Themenersteller

1 Beiträge
Beitrag hilfreich?

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
 
Verfasst am: 29. 05. 2011 [16:25]
UFOMelkor
Dabei seit: 20.10.2009

348 Beiträge
Beitrag hilfreich?

Hi Daniel,

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

Der Fehler liegt hier
PHP
$nnamenew .'" WHERE id = " . $wert . "";

Korrekt wäre:
PHP
$nnamenew ."' WHERE id = " . $wert . "";

Achte auf die Unterscheidung von single- und double-quotes.

Zwei Zeilen später findet sich allerdings noch ein Fehler:
PHP
$erg2 = mysql_db_query("$dbname",$abfrage2,$verbindung);
or die ("Fehler mit der Datenbank" . mysql_error());


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


Davon ab gibt es noch ein paar Unschönheiten:
PHP
. $wert . "";

Ein "" am Ende bewirkt nichts. Das . "" kannst du also weglassen.

PHP
$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.

PHP
$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:
PHP
$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?

 




Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:



5 Mitglieder waren innerhalb der letzten 15 Minuten online (45 heute gesamt):
andybird, axeljanaschke, klarsteb, okapijoe, winelady

Administratoren und Moderatoren:
[keine]

Seitenreport hat 18153 registrierte Mitglieder, 3003 Themen und 29112 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 7 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Partnerprogramm

12% Lifetime Provision auf alle Buchungen von Dir geworbener Mitglieder sowie 0,50 € für jede Registrierung. Eines der besten deutschen Partnerprogramme laut den appCharts von 100partnerprogramme.de. Nimm jetzt teil am Seitenreport Partnerprogramm und verdiene gutes Geld dabei!

* = Partnerlinks