Martin Linden: Datenbankabfrage

Hallo,
Ich sitze mittlerweile seit stunden daran, diese Daten in die SQL Datenbank zu bekommen, aber das klappt einfach nicht.
Hat einer von euch da vielleicht einen Tipp?

Vielleicht ist da ja wirklich etwas falsch???

include("pswd.php");

$tabelle = "userdb";

@$sql = mysql_connect($dbhost, $dbuser, $dbpswd)
  or die("<br>Konnte nicht auf die Datenbank Verbinden");

$dbanfrage = "INSERT INTO $tabelle (nachname, vorname, ort, plz, alter, sprache, coockie,  emailadr, emailliste, kennwort) VALUES ('$nachname', '$vorname', '$ort', '$plz', '$alter', '$sprache', '$coockiejanein', '$mailadresse', '$mailliste', '$kennwort')";

if (mysql_db_query ($dbuser, $dbanfrage, $sql)) {
print ("Datenbankeintrag erfolgreich.");
} else {
print ("Es traten Probleme auf.");
}

mysql_close($sql);
 ?>

Die datenbank hat im übrigens auch eine Spalte ID. Muss ich da auch versuchen etwas hinein zu fügen??

Es wäre nett, wenn mir da jemand weiter helfen könnte.
Gruß
Martin

  1. $dbanfrage = "INSERT INTO $tabelle (nachname, vorname, ort, plz, alter, sprache, coockie,  emailadr, emailliste, kennwort) VALUES ('$nachname', '$vorname', '$ort', '$plz', '$alter', '$sprache', '$coockiejanein', '$mailadresse', '$mailliste', '$kennwort')";

    Ohne es ausprobieren zu können: kann es sein, dass das Einfügen von Strings bei Feldern vom Typ INT, etc. zu einem Fehler führt? Du fügst etwa '$plz' in die Spalte plz ein...

    Die datenbank hat im übrigens auch eine Spalte ID. Muss ich da auch versuchen etwas hinein zu fügen??

    Wohl nicht, wenn die Spalte Null-Werte zulässt (auch das ohne Gewähr)

    Es wäre nett, wenn mir da jemand weiter helfen könnte.
    Gruß
    Martin

    1. Hallo, auch hier schein ein mal herzlichen dank im vorraus,,

      Für das Feld PLZ habe ich folgende Einstellungen vorgenommen::

      Feld | Typ   | Attribute | Null | Standart | Extra | Aktion  |
      --------------------------------------------------------------
      plz  |int(11)|           |   Ja | Null     |       |Volltext |

      Ist das falsch???

      int steht doch für zahlen oder??

      Gruß
      Martin

      1. Das sieht schon richtig aus. Aber in Deiner Prozedur versuchst Du, einen String zuzuweisen, also etwa "55678" als PLZ. Ich weiß nicht, ob so etwas gut geht. Versuch mal, einfach $plz in die INSERT-Zeile zu schreiben.

        1. Das sieht schon richtig aus. Aber in Deiner Prozedur versuchst Du, einen String zuzuweisen, also etwa "55678" als PLZ. Ich weiß nicht, ob so etwas gut geht. Versuch mal, einfach $plz in die INSERT-Zeile zu schreiben.

          Ich hab jetzt einfach mal das einfügen der PLZ weggelassen.
          Dabei bekomme ich immer noch folgenden fehler:

          Es traten Probleme auf.
          You have an error in your SQL syntax near 'alter, sprache, coockie, emailadr, emailliste, kennwort) VALUES ('afdsas', 'fds' at line 11064

          Ist es schlimm, wenn eine Varibele, die eingefügt wird nicht gesetzt ist,, also keinen Inhalt hat???

          Gruß
          Martin

          1. Ich weiß nicht, ob das Problem mit der Spalte "alter" nicht fortbesteht. Im Übrigen glaube ich aber auch, Du solltest mal Toms Hinweis mit der Spaltenbezeichnung "alter" nachgehen. Versuch mal, die umzubenennen. "alter" ist ein reserviertes Wort und Programme reagieren komisch auf so etwas.

      2. Moin!

        Feld | Typ   | Attribute | Null | Standart | Extra | Aktion  |

        plz  |int(11)|           |   Ja | Null     |       |Volltext |

        Ist das falsch???

        Ja.

        int steht doch für zahlen oder??

        Postleitzahlen sind keine Zahlen. Eine nicht unbedeutende Anzahl von Menschen im Osten hat Postleitzahlen, die mit einer Null beginnen. Und diese Null würde bei deinem Spaltentyp verschwinden - was die Post sicher nicht so witzig findet.

        Deshalb: Postleitzahlen immer als String (5 Zeichen) definieren.

        Außerdem ist es der Datenbank vollkommen egal, ob du einer Zahlen-Spalte ihren Wert mit oder ohne Anführungszeichen übergibst. Mit Anführungszeichen ist aber besser.

        Und der dritte Punkt: Du escapest deine Strings allesamt NICHT. Das ist sehr schlecht, weil man dir auf diese Weise böse Zeichen reinschreiben kann, die die Datenbank dann in Probleme bringt.

        Informiere dich über mysql_escape_string().

        - Sven Rautenberg

        1. Hi,

          Postleitzahlen sind keine Zahlen. Eine nicht unbedeutende Anzahl von Menschen im Osten hat Postleitzahlen, die mit einer Null beginnen. Und diese Null würde bei deinem Spaltentyp verschwinden - was die Post sicher nicht so witzig findet.

          Das mit der führenden Null könnte man ja noch bei der Ausgabe korrigieren.
          Das setzt aber voraus, daß ausschließlich deutsche Postleitzahlen vorhanden sind.
          In Österreich sind Postleitzahlen nur 4 Ziffern lang - eine 0 vorne zu ergänzen wäre falsch.

          Aber es gibt auch viele Länder, in denen die "Postleitzahl" (bzw. der Postleit-Kode) Buchstaben enthält.
          In den USA z.B. zwei Buchstaben für den Staat, 5 Ziffern für den Bezirk, in Großbritannien wild durcheinander Buchstaben und Ziffern usw.

          Deshalb: Postleitzahlen immer als String (5 Zeichen) definieren.

          Wie bereits gesagt, für die USA sind 7 Zeichen erforderlich, in Großbritannien IIRC 6.
          Wenn man also nicht ausschließlich deutsche Postleitkodes hat, sollte man etwas Reserve einplanen...

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.Mud-Guard.de/
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo!

    if (mysql_db_query ($dbuser, $dbanfrage, $sql)) {
    print ("Datenbankeintrag erfolgreich.");
    } else {
    print ("Es traten Probleme auf.");

    print mysql_error();
       print mysql_errno();

    }

    Die datenbank hat im übrigens auch eine Spalte ID. Muss ich da auch versuchen etwas hinein zu fügen??

    Nein, so ID der Primary Key ist.

    Beste Grüße
    Viennamade

    1. Danke erst mal für die schnelle Hilfe,
      Ich hab das mal eben engefügt,
      dabei kam folgendes raus::

      Es traten Probleme auf.You have an error in your SQL syntax near 'alter, sprache, coockie, emailadr, emailliste, kennwort) VALUES ('afdsas', 'fds' at line 11064

      Wobei "asdsas" der von mir in das Eingabefeld eingegebene Test Name ist

      und "fds" im eingabefeld "fds@" ist und für die E-mail adresse steht.

      Gruß
      Martin

      1. Vielleicht hängt es mit dem @-Zeichen zusammen. Probier mal, diesem ein \ voranzustellen.

        1. Vielleicht hängt es mit dem @-Zeichen zusammen. Probier mal, diesem ein \ voranzustellen.

          Ich habe irgendwo gelesen, dass das @ vor einer SQL abfrage verhindert, dass eine Fehlermeldung ausgespuckt wird.
          Und somit kann auch bei SQL fehlern nicht zufällig das Passwort oder ähnliches mit rausrutschen.

          Jedenfalls hab ich es eben mal mit dem \ davor probiert. Das geht garnicht. Und dann hab ich auch einfach mal das @ weggelassen,
          dann hab ich den selbe Fehler wie eben schon.

          Gruß
          Martin

          1. Ich meinte nicht das @ vor Deiner SQL-Anweisung, sondern in der Email-Adresse, die Du übergeben willst.

            1. Ich meinte nicht das @ vor Deiner SQL-Anweisung, sondern in der Email-Adresse, die Du übergeben willst.

              Das gab die selbe Fehlermeldung...

              Hat also anscheinend nix genützt

              hmm, so langsam verzweifle ich

              Gruß
              Martin
              ICQ: 74047225

        2. Hello,

          Vielleicht hängt es mit dem @-Zeichen zusammen. Probier mal, diesem ein \ voranzustellen.

          Nein, das hängt mit einem Spaltennamen zusammen. Der ist verboten.
          Überleg mal selber, ob Du ihn herausbekommst *gg*

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Ich schätze, er meint "alter".

            1. Hello,

              Ich schätze, er meint "alter".

              gut geschätzt. Ich habe nur nebenbei noch nach dem Kapitel gesucht...
              [link.http://dev.mysql.com/doc/mysql/de/Reserved_words.html]

              Ausdrucken und unters Kopfkissen, dann wisst ihr wenigstens, wo es liegt ;-)

              Liebe Grüße aus http://www.braunschweig.de

              Tom

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

                Ich schätze, er meint "alter".

                gut geschätzt. Ich habe nur nebenbei noch nach dem Kapitel gesucht...

                http://dev.mysql.com/doc/mysql/de/Reserved_words.html

                Ausdrucken und unters Kopfkissen, dann wisst ihr wenigstens, wo es liegt ;-)

                Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.

                Liebe Grüße aus http://www.braunschweig.de

                Tom

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

                  Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.

                  Das könnten Deine berühmten PraktikantInnen ja dann für Dich erledigen ;-)
                  Beste Grüße
                  Viennamade

                  1. Um den letzten satz dazu noch zu schreiben
                    Ich kann es verstehen, wenn die OberChecker,
                    die sich seit langer Zeit mit dem ganzen befassen
                    und auch das, was irgendwo beschrieben steht sofort
                    verstehen

                    Naja, wenn die sich von meinen Fragen generft fühlen.
                    Es tut mir leid,
                    Aber, wenn ich den Durchblick habe, versprochen,
                    dann werd ich hier auch öfters mal antworten.
                    Und falls ihr ne Chemie frage habt...
                    Gruß
                    Martin

                    1. Hallo!

                      Naja, wenn die sich von meinen Fragen generft fühlen.

                      Vielleicht habe ich was nicht mitbekommen, aber ich glaube nicht, daß sich irgendjemand ob Deiner Frage genervt fühlte.

                      Aber, wenn ich den Durchblick habe, versprochen,
                      dann werd ich hier auch öfters mal antworten.

                      Yep!

                      Und falls ihr ne Chemie frage habt...

                      Das ist gut, ich lese grad den 2. Band von "Wasser kochen leicht gemacht" (OK, das ist nur Physik).

                      Beste Grüße
                      Viennamade

                  2. Hello,

                    Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.
                    Das könnten Deine berühmten PraktikantInnen ja dann für Dich erledigen ;-)

                    Wie meinst Du das jetzt? Hoffentlich nicht politisch!

                    Liebe Grüße aus http://www.braunschweig.de

                    Tom

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

                      Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.
                      Das könnten Deine berühmten PraktikantInnen ja dann für Dich erledigen ;-)

                      Wie meinst Du das jetzt? Hoffentlich nicht politisch!

                      G, nein gar nicht. Aber du hast hier mindestens einmal von PraktikantInnen in Zusammenhang mit zeitaufwändigen, tendenziell repetitiven Tätigigkeiten geschrieben.
                      Wenn ich solche Tätigkeiten verrichte fallen mir diese PraktikantInnen ein, wünsche sie mir herbei, dieser Wunsch ist sozusagen running gag für mich geworden.

                      Beste Grüße
                      Viennamade

                      1. Hello,

                        Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.
                        Das könnten Deine berühmten PraktikantInnen ja dann für Dich erledigen ;-)

                        Wie meinst Du das jetzt? Hoffentlich nicht politisch!
                        G, nein gar nicht. Aber du hast hier mindestens einmal von PraktikantInnen in Zusammenhang mit zeitaufwändigen, tendenziell repetitiven Tätigigkeiten geschrieben.
                        Wenn ich solche Tätigkeiten verrichte fallen mir diese PraktikantInnen ein, wünsche sie mir herbei, dieser Wunsch ist sozusagen running gag für mich geworden.

                        Mmmh, den Thread must Du mir mal zeigen. Meine PraktikantInnen haben bei mir immer hochwertige geistige Tätigkeit verrichtet, wenn wir nicht gerade mal gemeinsam aufgeräumt oder umgeräumt haben ;-)

                        Stumpfsinnige Arbeiten muss bei uns immer der Chef selber machen.

                        Liebe Grüße aus http://www.braunschweig.de

                        Tom

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

                          Ich beantrage die Editiermöglichkeit für eigene Diskussionsfadenbeiträge.
                          Das könnten Deine berühmten PraktikantInnen ja dann für Dich erledigen ;-)

                          Wie meinst Du das jetzt? Hoffentlich nicht politisch!
                          G, nein gar nicht. Aber du hast hier mindestens einmal von PraktikantInnen in Zusammenhang mit zeitaufwändigen, tendenziell repetitiven Tätigigkeiten geschrieben.
                          Wenn ich solche Tätigkeiten verrichte fallen mir diese PraktikantInnen ein, wünsche sie mir herbei, dieser Wunsch ist sozusagen running gag für mich geworden.

                          Mmmh, den Thread must Du mir mal zeigen. Meine PraktikantInnen haben bei mir immer hochwertige geistige Tätigkeit verrichtet, wenn wir nicht gerade mal gemeinsam aufgeräumt oder umgeräumt haben ;-)

                          Wie recht Du hast! http://forum.de.selfhtml.org/archiv/2003/11/62416/#m353162
                          Moralisch wäre es ja richtig mir für solche Tätigkeiten andere Tagträume zu suchen - mal sehen;-)

                          Beste Grüße
                          Viennamade

              2. Danke,
                ich werd mir das Werk bei Gelegenheit mal reinziehen,
                sprich, JETZT
                P.S.
                der Platz unter meinem Kopfkissen ist schon für mein Chemie Buch reserviert.

                SOOOO
                hab das mal eben geändert, und das scheint schon eine Menge geholfen zu haben.
                Die fehlermeldung ist nun nur noch 1/4 so groß.

                Es traten Probleme auf.
                Column count doesn't match value count at row 11136

                Nur was bedeutet das jetzt schon wieder???

                Gruß
                Martin

                Und Vielen Vielen Vielen herzlichen dank

                1. Vielleicht musst Du jetzt mal wieder die Variable $plz aufnehmen, da ansonsten die Anzahl der Spalten-Namen nicht mit der Anzahl der VALUES übereinstimmt?

                  1. Es war ein anderer kleiner fehler,
                    ich hatte testweise noch etwas eingefügt, aber is auch wurscht,
                    Weil ES GEHT
                    Danke

                2. Hallo!

                  Column count doesn't match value count at row 11136
                  Nur was bedeutet das jetzt schon wieder???

                  Anzahl der Felder ist ungleich Anzahl Werte.

                  Beste  Grüße
                  Viennamade