• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Parse Error

Status
Für weitere Antworten geschlossen.

WebMuce

Neues Mitglied
Hallo,

ich habe folgendes Problem. Es wird immer folgender Fehler ausgegeben:
Code:
Parse error:  syntax error, unexpected ';' in /mnt/cr1/03/519/00000019/htdocs/konfig/include/meinaccount.php  on line 54.
Zeile 54 entspricht dabei der Zeile nach WHERE, also "Benutzer = ...".

PHP:
 $sql = "UPDATE
                        tbl_benutzer
                    SET
                        Benutzer = '".trim($_POST['benutzername']."',
                        Name = '".trim($_POST['name'])."',
                        Email = '".addslashes(trim($_POST['email']))."'
                    WHERE
                        Benutzer = '".$_SESSION['Benutzername']."';";
Wo soll der Fehler sein?
 
In der Zeile darüber fehlt ein abschließendes Semikolon .... Leider hattest Du diesen Anteil nicht mit gesendet ...

@XraYSoLo wie kommst Du darauf, dass ein Semi zu viel wäre? Ich habe keines gesehen

Gruß,
Jumper, the II.
 
Zuletzt bearbeitet von einem Moderator:
er hat recht... es ist eins zu viel!
Code:
$sql = "UPDATE
                        tbl_benutzer
                    SET
                        Benutzer = '".trim($_POST['benutzername']."',
                        Name = '".trim($_POST['name'])."',
                        Email = '".addslashes(trim($_POST['email']))."'
                    WHERE
                        Benutzer = '".$_SESSION['Benutzername']."'";

so müsste es richtig sein aber ich mache immer..

mysql_query("UPDATE
tbl_benutzer
SET
Benutzer = '".trim($_POST['benutzername']."',
Name = '".trim($_POST['name'])."',
Email = '".addslashes(trim($_POST['email']))."'
WHERE
Benutzer = '".$_SESSION['Benutzername']."'");

stimmen müsste beides hier. (der obere ist deiner nur korrigiert)
 
PHP:
Benutzer = '".$_SESSION['Benutzername']."';";

fällt dir hier was auf?

Nils aka XraYSoLo

Dass Du
PHP:
$sql = "UPDATE
...
        Benutzer = '".$_SESSION['Benutzername']."';";
falsch interpretierst?

OT:
Wenn es nach Deinen Wünschen geht, hätte anstatt seines Codes folgender Schnipsel stehen müssen:
PHP:
$sql = "UPDATE"                                                          . "\n" .
       "                tbl_benutzer"                                    . "\n" .
       "            SET"                                                 . "\n" .
       "                Benutzer = '".trim($_POST['benutzername']."',"   . "\n" .
       "                Name = '".trim($_POST['name'])."',"              . "\n" .
       "                Email = '".addslashes(trim($_POST['email']))."'" . "\n" .
       "            WHERE"                                               . "\n" .
       "                Benutzer = '".$_SESSION['Benutzername']."';";
Aber selbst diese Umschreibung löst nicht sein Problem, weil sein Problem eine Zeile vor $sql = ... steht.

Gruß,
Jumper, the II.
 
er hat recht... es ist eins zu viel!

Hääää? SQL-Statements sind grundsätzlich mit einem Semi abschließbar. Bei mehreren Statements in einer Abfrage ist es sogar Pflicht.

Unabhängig davon hatte WebMuce einen PHP-Fehler und keinen SQL-Fehler. Wenn Du jetzt das Zeichen aus dem SQL-Statement entfernst, wird sich am PHP-Fehler nichts ändern. Und wenn Du das Semi am Ende enfernst wird sich immer noch nichts ändern, weil PHP bisher noch gar nicht zur Zeile kommt, um den Fehler zu melden.

Gruß,
Jumper, the II.
 
Hääää? SQL-Statements sind grundsätzlich mit einem Semi abschließbar. Bei mehreren Statements in einer Abfrage ist es sogar Pflicht.

Unabhängig davon hatte WebMuce einen PHP-Fehler und keinen SQL-Fehler. Wenn Du jetzt das Zeichen aus dem SQL-Statement entfernst, wird sich am PHP-Fehler nichts ändern. Und wenn Du das Semi am Ende enfernst wird sich immer noch nichts ändern, weil PHP bisher noch gar nicht zur Zeile kommt, um den Fehler zu melden.

Gruß,
Jumper, the II.

ich benutze nur mysql_query(""); und da gibt es nur das Semikolon am Ende nach der Klammer o0
 
ich benutze nur mysql_query(""); und da gibt es nur das Semikolon am Ende nach der Klammer o0

Es geht um die Abfrage !!!

Ruf mal Deinen phpmyadmin o. what ever auf und mach ne Abfrage alias

Code:
SELECT * FROM tbl_foo WHERE foo = foo

Dann wirst Du sehen, das

Code:
SELECT * FROM tbl_foo WHERE foo = foo

sowohl als auch

Code:
SELECT * FROM tbl_foo WHERE foo = foo;

funktionieren.

Das hat nix mit der php Funktion zu tun !
 
ich benutze nur mysql_query(""); und da gibt es nur das Semikolon am Ende nach der Klammer o0

Für eine einzelne Abfrage stimmt dies.

Aber Sachen ala:

Code:
SELECT * FROM temp_users ORDER BY name ASC; TRUNCATE temp_users
wirst du um das ; nicht herum kommen, oder du machst 2* ein mysql_query.
Je nach Menge belastest du den Server enorm mit mehreren Querys, und dein Script wird lange laufen...sehr lange...
 
Offtopic - SQL Statements

ich benutze nur mysql_query(""); und da gibt es nur das Semikolon am Ende nach der Klammer o0

Du hast - um es mit deinen Statement zu verfassen - folgendes Statement
PHP:
mysql_query( "SELECT * FROM table WHERE id > 0;");
als fehlerhaft betitelt und möchtest stattdessen
PHP:
mysql_query( "SELECT * FROM table WHERE id > 0");
als einzigst korrekte Form benennen ...

Beides ist laut SQL und mySQL zulässig.

/EDIT:
Und der Vollständigkeit halber ... Sprachbeschreibung SQL92
Code:
  <semicolon>    ::=   ;
  <SQL terminator>    ::=   END -EXEC | <semicolon> | <right paren>
  <embedded SQL statement>    ::=   <SQL prefix> <statement or declaration> [ <SQL terminator> ]
Ich hoffe, Du kannst Grammatiken lesen :-)
\EDIT

Und es löst nicht das Problem :lol:

Gruß,
Jumper, the II.
 
Zuletzt bearbeitet:
Es geht um die Abfrage !!!

Ruf mal Deinen phpmyadmin o. what ever auf und mach ne Abfrage alias

Code:
SELECT * FROM tbl_foo WHERE foo = foo
Dann wirst Du sehen, das

Code:
SELECT * FROM tbl_foo WHERE foo = foo
sowohl als auch

Code:
SELECT * FROM tbl_foo WHERE foo = foo;
funktionieren.

Das hat nix mit der php Funktion zu tun !

Du hast - um es mit deinen Statement zu verfassen - folgendes Statement
PHP:
mysql_query( "SELECT * FROM table WHERE id > 0;");
als fehlerhaft betitelt und möchtest stattdessen
PHP:
mysql_query( "SELECT * FROM table WHERE id > 0");
als einzigst korrekte Form benennen ...

Beides ist laut SQL und mySQL zulässig.

Und es löst nicht das Problem :lol:

Gruß,
Jumper, the II.

Richtig, genau wie ich es auch sagte !

Es ist absolut zulässig.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben