kostenloser Webspace werbefrei: lima-city


MySQL Query falsch

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    Hallo !

    Ich programmiere gerade ein Kommentarsystem, und benutze folgenden Query zum Speichern der Daten:

    $kommentar_query = 'INSERT INTO rezept_kommentare SET autor = ' . htmlentities($autor) . ', kommentar = ' . htmlentities($text) . ', datum = ' . $date . ', rezeptname = ' . $rezept['rezeptname'], kategorie_id = ' . $rezept['kategorie_id'], rezept_id = ' . $rezept['Id'];
    	$res = $abstract->query ( $kommentar_query );


    Ich benutze eine Datenbankklasse.

    Könnt Ihr mir sagen, was in der ersten Zeile vom Query falsch ist?

    Fehlermeldung:
    Parse error: syntax error, unexpected ',' in /home/www/web48/html/new/templates/yaml-template/rezept_ansicht.php on line 118
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e******n

    $kommentar_query = "INSERT INTO rezept_kommentare SET autor = '" .htmlentities($autor). "', kommentar = '" .htmlentities($text). "', datum = '" .$date. "', rezeptname = '" .$rezept['rezeptname']. "', kategorie_id = '" .$rezept['kategorie_id']. "', rezept_id = '" .$rezept['Id']. "';
    	$res = $abstract->query ( $kommentar_query );


    so müsste es stimmen.

    Deine Abfrage funktioniert nicht da du nur ' benutzt. dadurch schließt er den string nach autor = ab, da aber die parameter für autor auch ein ' benötigen solltest du stehts mit den Anführungszeichen " einen String anfangen und beenden. Daher habe ich bei z.B. Autor folgendes geschrieben :

    Autor = ' und dann mit " den string erst einmal beendet. Um nun Variablen einzufügen musst du einen Punkt direkt vor und hinter der Variable setzten und danach musst du mit " und dann ' den String wieder anfangen. am Ende des Strings muss selbstverständlich auch Anführungszeichen hin.

    Daraus kommt dann z.B. Autor='blabla' (wenn in der Variable die eingefügt werden soll auch blabla steht.

    Beitrag zuletzt geändert: 10.1.2012 13:20:39 von excision
  4. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    excision schrieb:

    $kommentar_query = "INSERT INTO rezept_kommentare SET autor = '" . htmlentities($autor) . "', kommentar = '" . htmlentities($text) . "', datum = '" . $date . "', rezeptname = '" . $rezept['rezeptname']. "', kategorie_id = '" . $rezept['kategorie_id']. "', rezept_id = '" . $rezept['Id']. "';
    	$res = $abstract->query ( $kommentar_query );



    Vielen Dank !
    Es funktioniert!
  5. e******n

    bitte siehe oben warum ;)
  6. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    Danke für die Erklärung!;)
  7. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Der Syntaxfehler war folgender:

    $kommentar_query = 'INSERT INTO rezept_kommentare SET autor = ' . htmlentities($autor) . ', kommentar = ' . htmlentities($text) . ', datum = ' . $date . ', rezeptname = ' . $rezept['rezeptname'], kategorie_id = ' . $rezept['kategorie_id'], rezept_id = ' . $rezept['Id'];

    Da fehlt ein .' deshalb hat sich der PHP-Interpreter aufgeregt.

    Du solltest aber diese Variante verwenden:
    excision schrieb:
    $kommentar_query = "INSERT INTO rezept_kommentare SET autor = '" .htmlentities($autor). "', kommentar = '" .htmlentities($text). "', datum = '" .$date. "', rezeptname = '" .$rezept['rezeptname']. "', kategorie_id = '" .$rezept['kategorie_id']. "', rezept_id = '" .$rezept['Id']. "';
    	$res = $abstract->query ( $kommentar_query );
  8. Die Strichpunkte bei PHP sind leicht zu vergessen aber fehlt einer funktioniert das script nichtmehr also bei einer Fehlermeldung immer zuerst nach einem strichpunkt suchen.
  9. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    young-coding schrieb:
    Die Strichpunkte bei PHP sind leicht zu vergessen aber fehlt einer funktioniert das script nichtmehr also bei einer Fehlermeldung immer zuerst nach einem strichpunkt suchen.
    Der PHP-Parser hat deutlich gesagt dass ihm ein
    ,
    nicht passt. Da macht ein ; auch keinen Unterschied.
    Der Fehler ist entstanden weil ein ' vergessen worden ist, deshalb ist der Beistrich nicht als String ausgewertet worden und deshalb hat sich der PHP-Parser beschwert.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!