Klaus: Fehler beim Update-Befehl ??

Hallo zusammen!

Folgendes: Ich habe ein Formular, welches per Knopfdruck den geänderten Text in den verschiedenen Textareas in der Mysql-Tabelle updated. Das ganze funktionert auch, doch nur wenn ich Zahlen in die Textareafelder eingebe, sobald ich nur einen Buchstaben eingebe, kommt folgender Fehler:

Fehler: Unknown column 'Dies ist ein Text Kommentar' in 'field list'

Der Typ der Felder in der Mysql Tabelle lautet "text"!

Kann vielleicht einer helfen?

Danke im Voraus, MfG Klaus

  1. hi,

    poste doch mal dein update-befehl...

    grüße christian

    1. "poste doch mal dein update-befehl..."

      genau!
      ist mir nämlich neu, daß eine DB-Spalte 'Dies ist ein Text Kommentar' heißen darf (Leerzeichen!).
      Das scheint Deine Fehlermeldung aber zu sagen (Du hast wohl Deinen Text als Spaltennamen angegeben).
      Gruß, Andreas

      1. "poste doch mal dein update-befehl..."

        genau!
        ist mir nämlich neu, daß eine DB-Spalte 'Dies ist ein Text Kommentar' heißen darf (Leerzeichen!).
        Das scheint Deine Fehlermeldung aber zu sagen (Du hast wohl Deinen Text als Spaltennamen angegeben).
        Gruß, Andreas

        Hallo,

        Die ist mein Update Befehl schonmal danke für eure Hilfe:

        if($submit) {

        mysql_select_db($db_name, $db) or exit();

        $update = "UPDATE collin SET ueberschrift=$ueberschrift, ueberschrift1=$ueberschrift1, beschreibung=$beschreibung, material=$material, masse=$masse, bestell=$bestellnummer WHERE id=$newid AND id2=$newid2";

        mysql_query($update,$db);

        if (mysql_errno() == 0):
          echo "<center><a href=update.php?id=$newid>Daten wurden erfolgreich eingetragen!</a></center>";
        else:
          echo "Fehler: ".mysql_error();
          endif;
          }

        1. Hallo,

          Die ist mein Update Befehl schonmal danke für eure Hilfe:

          if($submit) {

          mysql_select_db($db_name, $db) or exit();

          $update = "UPDATE collin SET ueberschrift=$ueberschrift, ueberschrift1=$ueberschrift1, beschreibung=$beschreibung, material=$material, masse=$masse, bestell=$bestellnummer WHERE id=$newid AND id2=$newid2";

          mysql_query($update,$db);

          if (mysql_errno() == 0):
            echo "<center><a href=update.php?id=$newid>Daten wurden erfolgreich eingetragen!</a></center>";
          else:
            echo "Fehler: ".mysql_error();
            endif;
            }

          Bist Du sicher, dass Datentypen der Tabelle mit den Datentypen der Variablen übereintimmen? Prüfe das mal nach.... Der SQL-Befehl ist ansonsten in Ordnung, wenn ich nicht ganz blind bin :-)

          1. $update = "UPDATE collin SET ueberschrift=$ueberschrift, ueberschrift1=$ueberschrift1, beschreibung=$beschreibung, material=$material, masse=$masse, bestell=$bestellnummer WHERE id=$newid AND id2=$newid2";

            Der SQL-Befehl ist ansonsten in Ordnung, wenn ich nicht ganz blind bin :-)

            Tut mir leid, aber Du bist blind :) Damit hat er a) genau das von ihm beschriebene Problem, wenn eine seiner Variablen Buchstaben und/oder Leerzeichen enthält und b) kann man ihm damit wunderbar die Datenbank zerlegen, weil er nicht darauf achtet Anführungszeichen in seinen Variablen zu maskieren. Setz mal

            ""; delete from collin; update collin set ueberschrift=""

            für $ueberschrift in den SQL-Befehl ein, raus kommt folgendes:

            UPDATE collin SET ueberschrift="";
            delete from collin;
            update collin set ueberschrift="", ueberschrift1=$ueberschrift1, [..]

            So schnell ist die Tabelle leer..

            Gruß,
              soenk.e

            1. Hi!

              ""; delete from collin; update collin set ueberschrift=""

              für $ueberschrift in den SQL-Befehl ein, raus kommt folgendes:

              UPDATE collin SET ueberschrift="";
              delete from collin;
              update collin set ueberschrift="", ueberschrift1=$ueberschrift1, [..]

              So schnell ist die Tabelle leer..

              Auch in Mysql???? Ich dachte immer es geht nur eine Abfrage!!! Weiß nicht ob das überhaupt gut geht, aber wenn ist wenigstens die Überschriftsspalte leer, oder?

              Grüße
              Andreas

              1. ""; delete from collin; update collin set ueberschrift=""

                für $ueberschrift in den SQL-Befehl ein, raus kommt folgendes:

                UPDATE collin SET ueberschrift="";
                delete from collin;

                So schnell ist die Tabelle leer..

                Auch in Mysql???? Ich dachte immer es geht nur eine Abfrage!!! Weiß nicht ob das überhaupt gut geht, aber wenn ist wenigstens die Überschriftsspalte leer, oder?

                Ich muß mich da korrigieren, es scheint darauf anzukommen, wem man diese Anfrage verpasst. mysql_query() in PHP nimmt in der Tat anscheinend nur einen Befehl an. Ändert aber nichts an dem ursprünglichen Problem mit den Anführungszeichen.

                Davon abgesehen sollte man aber trotzdem vorsichtig sein, was man vom Nutzer annimmt und an eine Datenbank weitergibt. Die MySQL-Shell-Befehle nehmen zum Beispiel durchaus solche Befehlsketten an.

                Gruß,
                  soenk.e

  2. Folgendes: Ich habe ein Formular, welches per Knopfdruck den geänderten Text in den verschiedenen Textareas in der Mysql-Tabelle updated. Das ganze funktionert auch, doch nur wenn ich Zahlen in die Textareafelder eingebe, sobald ich nur einen Buchstaben eingebe, kommt folgender Fehler:

    Fehler: Unknown column 'Dies ist ein Text Kommentar' in 'field list'

    Hast Du vergessen, den Text in dem SQL-Befehl in Anführungszeichen zu setzen?

    mysql_query("update tabelle set toller_text="$text"",$db);

    sollte mindestens funktionieren, richtiger wäre allerdings

    mysql_query("update tabelle set toller_text="". addslashes($text) .""",$db);

    Gruß,
      soenk.e