Blindfisch: (PHP) Bin ich blind?

Hallo,

<?php
  if($id) {
    mysql_query('UPDATE news SET head = "'.mysql_escape_string($head).'", date = '.$time.', image = "'.mysql_escape_string($image).'", body = "'.mysql_escape_string($body).'", desc = "'.mysql_escape_string($desc).'" WHERE id = '.$id.';') or $news->db_error('Updaten des News');
  } else {
    mysql_query('INSERT INTO news (head, date, image, body, desc) VALUES ("'.mysql_escape_string($head).'", '.$time.', "'.$image.'", "'.mysql_escape_string($body).'", "'.mysql_escape_string($desc).'");') or $news->db_error('Schreiben des News');
  }
?>

ich bin wohl blind. Ist hier _irgendwo_ irgendetwas böööööses feststellbar? Folgendes gibt mir nämlich mysql_error() andauernd aus:

Fehler in der Syntax bei ' image = "%/mysql.gif", body = "<p>TEEEST</p>", desc = "Sv' in Zeile 1.

Bin ich wirklich blind?

!?

blindfisch

--
!:        Evv. bald wieder weg
Selfcode: ie:% fl:| br:^ va:{ ls:& fo:) rl:( n4:( ss:) de:> js:| ch:° mo:} zu:}
Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
Decode:   http://peter.in-berlin.de/projekte/selfcode/
E-Mail:   coming soon
me:       'd comed long ago
  1. mysql_query('UPDATE news SET head»» .........

    ^                ^    ^
    DAS kann nicht funktionieren..

    Gruß
    Mark

    1. Hallo Mark,

      mysql_query('UPDATE news SET head»» .........
                     ^                ^    ^
      DAS kann nicht funktionieren..

      wieso nicht? Für gewöhnlich werden backticks für feldnamen benutzt (in mysql). Und Strings in PHP werden u.a. in ' "single quoations" geschrieben. Und das Zitatzeichen danach stammt nicht von mir ;)

      hm!?

      blindfisch

  2. Hello,

    Bin ich wirklich blind?

    Nee, blöd! ;-)

    Ich kann nämlich keinerlei Auswertung der Rückgabewerte oder irgendeine Fehlerbehandlung feststellen. Bring das erstmal in Ordnung und sei nicht so faul!

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hallo,

      Bin ich wirklich blind?
      Nee, blöd! ;-)
      Ich kann nämlich keinerlei Auswertung der Rückgabewerte oder irgendeine Fehlerbehandlung feststellen. Bring das erstmal in Ordnung und sei nicht so faul!

      Die Fehlerbehandlung von $this->db_error($text) gibt nur eine ordentlich formatierte Fehlererklärung aus und darüberhinaus mysql_error().

      Auswertung der Rückgabewerte wird nicht gemacht, da hier nicht in die Db geschrieben wird, und was für Daten soll ich denn gewinnen?

      der blindfisch

  3. yo,

    bei solchen kosntrukten könnte es hilfreich sein, es mal in eine variable zu speichern und mit echo ausgeben zu lassen, um einen genauen blick auf die query zu werfen.

    Ilja

  4. Moin,

    habe noch nicht so viel mit Datenbanken gemacht, aber gibt es vielleicht Probleme mit Deinem Feldnamen "desc", wo das doch ein reserviertes Wort ist?

    Gruß,
    -Efchen

    --
    Selfcode: ie:% fl:( br:^ va:{ ls:& fo:) rl:? n4:& ss:) de:> js:| ch:? sh:) mo:) zu:}
    Encode:   http://forum.de.selfhtml.org/cgi-bin/selfcode.pl
    Decode:   http://peter.in-berlin.de/projekte/selfcode/
    1. Hallo elfchen,

      habe noch nicht so viel mit Datenbanken gemacht, aber gibt es vielleicht Probleme mit Deinem Feldnamen "desc", wo das doch ein reserviertes Wort ist?

      deswegen habe ich ja probehalber alle felder in ``-backticks geschrieben.

      bildschisch