Syntaxfehler

mike4004

Erfahrenes Mitglied
Hi

ich hab schon lange nichts mehr in php gemacht und wollte jetzt mal wieder was machen doch promt stoße ich auf ein Problem das ich nicht lösen kann es geht um folgenten Fode in der letzten Zeile meldet der Compiler einen Syntax Fehler.

ich finde den Fehler einfach nicht

PHP:
$beitrag = "
        INSERT INTO
                `bei`
          SET
                `ub`     = '".mysql_real_escape_string($_POST['ub'])."',
				`text` = '".mysql_real_escape_string($_POST['text'])."',
				`NAME`  = '".mysql_real_escape_string($_SESSION['name']."',
                `type`   = '".mysql_real_escape_string($_POST['sprache'])."',
                `time` = '".date("d.m.Y", $timestamp).", ".date("H:i", $timestamp)."'";

Parse error: syntax error, unexpected ';' in C:\Programme\xampp\htdocs\c-world\eintrag.php
 
Zuletzt bearbeitet:
Für welche Zeile wird der Fehler angezeigt?

Schau doch mal ob in der Zeile darüber nicht irgendwo ein ";" zu viel ist.

greetz
daddz
 
so geht dad

PHP:
$datum=date("d.m.Y", $timestamp);
$zeit=date('H:i', $timestamp);
$beitrag = "
        INSERT INTO
                `bei`
          SET
                `ub`     = '".mysql_real_escape_string($_POST['ub'])."',
                `text` = '".mysql_real_escape_string($_POST['text'])."',
                `NAME`  = '".mysql_real_escape_string($_SESSION['name']."',
                `type`   = '".mysql_real_escape_string($_POST['sprache'])."',
                `time` = '".$datum.", ".$zeit."';
 
Zuletzt bearbeitet:
Hi

danke aber leider noch immer Syntaxfehler :(
unzwar der gleiche


//edit

danke trotz änderung des codes keine Veränderung allerdings hast du nen neuen Fehler rein gemacht du hast vor dem letzten ; noch ein " vergessen.

mfg mike4004
 
Zuletzt bearbeitet:
Unabhängig vom aktuellen Problem würd ich gerne vorschlagen, auf solche Verkettungsmonster generell zu verzichten und stattdessen sprintf() zu verwenden.

Aus

PHP:
$beitrag = "
        INSERT INTO
                `bei`
          SET
                `ub`     = '".mysql_real_escape_string($_POST['ub'])."',
				`text` = '".mysql_real_escape_string($_POST['text'])."',
				`NAME`  = '".mysql_real_escape_string($_SESSION['name']."',
                `type`   = '".mysql_real_escape_string($_POST['sprache'])."',
                `time` = '".date("d.m.Y", $timestamp).", ".date("H:i", $timestamp)."'";

wird dann

PHP:
$beitrag = sprintf("INSERT INTO `bei` SET `ub` = '%s', `text` = '%s', `name` = '%s'",
                   mysql_real_escape_string($_POST['ub']),
                   mysql_real_escape_string($_POST['text']),
                   mysql_real_escape_string($_POST['name']));

Hab's etwas verkürzt, weil ich keine Lust hatte so viel abzuschreiben. ;) Aber der Vorteil ist hoffentlich ersichtlich: Übersichtlicherer und fehlerunanfälligerer Code.
 
Ich finde deinen Vorschlag weitaus unübersichtlicher als den anderen.
PHP:
$beitrag = '
	INSERT INTO
	        `bei`
	  SET
	        `ub`     = "'.mysql_real_escape_string($_POST['ub']).'",
	        `text`   = "'.mysql_real_escape_string($_POST['text']).'",
	        `NAME`   = "'.mysql_real_escape_string($_SESSION['name']).'",
	        `type`   = "'.mysql_real_escape_string($_POST['sprache']).'",
	        `time`   = "'.date('d.m.Y, H:i', $timestamp).'"
	';
Man könnte sich selbstverständlich auch eine Funktion schreiben, die das Ganze übernimmt. Somit hat man nur noch die Parameter zu prüfen und die Abfragedefinition selbst nicht.
 
Hallo mike4004,

ich hab zwar keine Ahnung von PHP aber könnte es an diesem Fehler hier liegen?
PHP:
$beitrag = "
        INSERT INTO
                `bei`
          SET
                `ub`     = '".mysql_real_escape_string($_POST['ub'])."',
                `text` = '".mysql_real_escape_string($_POST['text'])."',
                `NAME`  = '".mysql_real_escape_string($_SESSION['name']."', //Wo bleibt hier die abschließende, runde Klammer?
                `type`   = '".mysql_real_escape_string($_POST['sprache'])."',
                `time` = '".date("d.m.Y", $timestamp).", ".date("H:i", $timestamp)."'";

Also müsste die Zeile mit "NAME" dann so heißen:

PHP:
`NAME`  = '".mysql_real_escape_string($_SESSION['name'])."',

Naja, nur mein Senf.

Ich wünsch euch noch nen schönen Tag!

Ciao:
Adam Kalisz
 
Zuletzt bearbeitet:
Zurück