Insert syntax

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Insert syntax

    Hallo zusammen ..
    möchte mich im vorraus schonmal für evtl. hilfeleistung danken.. ich hab da ein problem mit dem Insert befehl.

    ich habe per Formular mehrere datensätze in ein array gespeichert und will diese jetzt über eine schleife in die datenbank eintragen..

    zur datenbak connecten und auslesen ist kein problem daran kann es also nicht liegen.

    ich habe den anfang des insert befehls in eine variabel gespeichert

    und dann innerhalb der schleife die werte + trennzeichen hinzugefügt.

    am ende des schleifendurchlaufs habe ich mir den sql befehl nochmal ausgeben lassen. der sieht auch von der Syntax i.o. aus

    hier die ausgabe des befehls:
    string(142) "INSERT INTO MYSQL_TABLE(ID,Anrede,Vorname,Nachname,Plz,Ort,Monatsmiete) VALUES ('3213','dsad','asdasd','asdasd','22313','asdas','32423');"


    aber ich bekomme folgende fehlermeldung

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 2

    hoffe mir kann da wer weiterhelfen..

  • #2
    Poste doch mal den relevanten teil deines Codes.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Comment


    • #3
      wie sieht deine tabelle aus?
      Realismus hilft beim Träumen nicht weiter!!!

      Comment


      • #4
        PHP Code:
        $trennzeichen "','";

        $sqleintragvorlage =     "INSERT INTO MYSQL_TABLE(ID,Anrede,Vorname,Nachname,Plz,Ort,Monatsmiete) 
                    VALUES ('"
        ;

        $sqleintrag $sqleintragvorlage;
        $eintrag mysql_db_query(MYSQL_DATABASE,$sqleintrag);

        $i 0;
        foreach(
        $_POST as $wert)    
        {
            
        $i++;
            
        $sqleintrag .= $wert;
            if(
        $i $DIM)
            {
            
        $sqleintrag .= "$trennzeichen";
            }
            else
            {
            
        $sqleintrag .= "');";
            
        var_dump($sqleintrag);
            
        $result $eintrag OR die("<br>Der eintrag konnte nicht vorgenommen werden. Grund:".mysql_error()."<br>");
            
            
        $sqleintrag $sqleintragvorlage;
            
        $i 0;
            }



        Tabelle sieht so aus:

        Feld Typ Null
        ID int(11) Nein
        Anrede varchar(4) Nein
        Vorname varchar(20) Nein
        Nachname varchar(20) Nein
        Plz varchar(5) Nein
        Ort varchar(20) Nein
        Monatsmiete decimal(8,2) Nein
        Last edited by FlowSeeker; 18-09-2006, 16:16.

        Comment


        • #5
          WAS für ein durcheinander

          das ganze foreach und trennzeichen gedöns kannst du mit 1 zeile machen

          Beispiel

          $werte = implode(",", $_POST);

          Wobei, willst du wirklich alle geposteten Werte einfach so übernehmen ? Is nicht so toll..

          EDIT:

          Monatsmiete decimal(8,2)

          Warum drückst du dann da einen String rein?

          gruss Chris

          [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

          Comment


          • #6
            naja bin halt noch in der anfaengerphase.. weiss ja selber das es nicht das gelbe vom ei ist.. das script ist ja auch eher zum üben gedacht.. bleibt aber immer noch die frage offen warum der befehl nicht erkannt wird.. ich glaube nich das es besser laufen würde wenn ich die übergebenen werte erst noch auf fehler prüfe usw..


            hmm hab grad dein edit gesehen... das ist wohl ein argument.. allerdings hat es über die ksh shell mit den hochkommatas gepasst...
            es geht ja darum das ich es in einer schleife machen will .. damit ich mehrere einträge gleichzeitig machen kann..
            Last edited by FlowSeeker; 18-09-2006, 16:30.

            Comment


            • #7
              Original geschrieben von FlowSeeker
              PHP Code:
              $sqleintrag $sqleintragvorlage;
              $eintrag mysql_db_query(MYSQL_DATABASE,$sqleintrag); 
              Zu diesem Zeitpunkt setzt du also bereits die Query ab - die noch gar nicht vollständig ist.

              Du versuchst hiermit, der Datenbank
              PHP Code:
              "INSERT INTO MYSQL_TABLE(ID,Anrede,Vorname,Nachname,Plz,Ort,Monatsmiete) 
                          VALUES ('" 
              zur Ausführung zu übergeben - sollte einleuchtend sein, dass die da nahe ' einen Fehler meldet.

              PHP Code:
              $result $eintrag OR die("<br>Der eintrag konnte nicht vorgenommen
              werden. Grund:"
              .mysql_error()."<br>"); 
              Das ist absolut sinnfrei.

              Du denkst wohl, $eintrag würde auf Grund der weiter oben vorgenommenen Zuweisung irgendeine Art von Funktionsreferenz enthalten, und diese Funktion jetzt ausführen, wenn du irgendwo $eintrag als "Befehl" hinschreibst ...?

              Nee nee, so funktioniert das in PHP nicht.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Comment


              • #8
                hmm .. ok klingt einleuchtend

                also ist es garnicht möglich den befehl in einer schleife zusammenzusetzten und dann erst abzusetzen?

                Comment


                • #9
                  Original geschrieben von FlowSeeker
                  also ist es garnicht möglich den befehl in einer schleife zusammenzusetzten und dann erst abzusetzen?
                  Doch, natürlich ist es das - du musst nur mysql_query vernünftig einsetzen (mysql_db_query ist veraltet, und soll nicht mehr genutzt werden).

                  Deine Query ist ein String, mysql_query erwartet als Parameter einen String - Problem glänzt durch absolute Nichtexistenz.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Comment


                  • #10
                    hmm ok also ich weis das der ganze code nich das gelbe vom ei ist.. aber ich hab halt mal den befehl in die schleife gesetzt nachdem er vervollständigt wurde und jetzt gehts.. dann weiss ich wenigstens wo der fehler lag..

                    war mir nähmlich unbekannt das die funktion bei der zuweisung ausgeführt wird..
                    $eintrag = mysql_db_query(MYSQL_DATABASE,$sqleintrag);
                    ich danke euch auf jeden fall.. für die konstruktive kritik
                    und beim finden des fehlers.

                    mfg FlowSeeker

                    Comment


                    • #11
                      Original geschrieben von FlowSeeker
                      war mir nähmlich unbekannt das die funktion bei der zuweisung ausgeführt wird..
                      Ja wann denn sonst ...?!?
                      Funktion wird ausgeführt, Funktion liefert Rückgabewert, Rückgabewert wird einer Variablen zugewiesen.

                      Vor weiteren Fragen dieses Kalibers erweitere aber bitte deine PHP-Grundkenntnisse.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Comment


                      • #12
                        naja da bin ich ja grade dabei..

                        hab nur irrtümlicherweise angenommen das dieses forum dazu da ist mir dabei zu helfen. suche mir wohl lieber ein einsteigerfreundlicheres board.

                        sorry for wasting ur time.

                        Comment


                        • #13
                          Helfen tut es nur nicht das denken übernehmen..
                          Und für dein Nichtwissen können die leute hier wohl am allerwenigstens!
                          Und dieses "Verlangte" Wissen ist nunmal Grundlage jeder Programmiersprache..

                          tzz

                          Pro Programmier Führerschein!

                          Comment


                          • #14
                            also.. ich hab schon genug leute in diesem board und woanders
                            gesehen denen es nicht an denkfähigkeit und grundwissen mangelt
                            und die in ihrem code irgendwo einen schnitzer drinhaben den andere
                            nunmal schneller sehen obwohl es offensichtlich ist...
                            ich denke das selbst du das schon erlebt hast..
                            aber iss ja auch egal bevor hier jetzt ne debatte um nen
                            "Programmier führerschein" losgeht bitte ich den Mod den thread zu schliessen. iss wohl alles gesagt an dieser stelle.

                            thx anyways für die konstruktive hilfe.

                            Comment


                            • #15
                              Was ist denn dein Problem?

                              Dir wurde doch freundlich erklärt, wo dein offensichtlichstes Missverständnis lag, und was du stattdessen machen sollst.

                              Und dass du bitte vor weiteren Fragen dieser Art - die eigentlich nur in mangelnden Grundkenntnissen begründet liegen können - dir eben solche ein bisschen intensiver aneignest, sollte doch wohl eine Selbstverständlichkeit sein.

                              Was also soll das Gejammer von wegen "Einsteigerfreundlichkeit"?
                              Jeder muss sich ein bisschen damit beschäftigen, wenn er damit arbeiten will - von nix kommt nix.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Comment

                              Working...
                              X