Ankündigung

Einklappen
Keine Ankündigung bisher.

csv Datei hochladen, bearbeiten und in mysql importieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • csv Datei hochladen, bearbeiten und in mysql importieren

    Guten Tag,

    ich möchte wie der Titel schon sagt eine csv Datei hochladen, bearbeiten und importieren.

    Das Script sieht wie folgt aus:

    PHP-Code:
    include('../inc/mysql.inc.php');
    $db mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
    mysql_select_db($sql['db'], $db);

    $fp file_get_contents('ProductData.csv');
    $fp str_replace('"''\"'$fp);
    $fp str_replace('='''$fp);
    file_put_contents('ProductData_anders.csv'$fp);

    $fp fopen("ProductData_anders.csv""r");



    //Datenbankverbindung besteht

    define("Shop"0);
    define("ProductId"1);
    define("ProgramId"2);
    define("MerchantProductNumber"3);
    define("ProductName"4);
    define("ProductPrice"5);
    define("ProductLongDescription"6);
    define("Status"7);
    define("MerchantProductCategory"8);
    define("ZanoxProductCategory"9);
    define("ImageSmallURL"10);
    define("ImageMediumURL"11);
    define("ProductManufacturerBrand"12);
    define("ZanoxProductLink"13);
    define("ZanoxProductCategoryNumber"14);
    define("MerchantProductCategoryNumber"15);
    define("DeliveryTime"16);
    define("TermsOfContract"17);
    define("ProductEAN"18);
    define("ProductPriceOld"19);
    define("CurrencySymbolOfPrice"20);
    define("UpdateDate"21);
    define("ValidFromDate"22);
    define("ValidToDate"23);
    define("ProductShortDescription"24);
    define("ImageLargeURL"25);





    $query "INSERT INTO dtg_shop VALUES ";
    while( !
    feof($fp) ) {
      
    $zeile fgetcsv  $fp  4096 ";"  );
      
      
      
    $query .= " ('".$zeile[Shop]."',
                    '"
    .$zeile[ProductId]."',
                    "
    .$zeile[ProgramId].",
                    "
    .$zeile[MerchantProductNumber].",
                    '"
    .$zeile[ProductName]."',
                    '"
    .$zeile[ProductPrice]."',
                    '"
    .$zeile[ProductLongDescription]."',
                     "
    .$zeile[Status].",
                    '"
    .$zeile[MerchantProductCategory]."',
                    '"
    .$zeile[ZanoxProductCategory]."',
                    '"
    .$zeile[ImageSmallURL]."',
                    '"
    .$zeile[ImageMediumURL]."',
                    '"
    .$zeile[ProductManufacturerBrand]."',
                    '"
    .$zeile[ZanoxProductLink]."',
                    '"
    .$zeile[ZanoxProductCategoryNumber]."',
                    '"
    .$zeile[MerchantProductCategoryNumber]."',
                    '"
    .$zeile[DeliveryTime]."',
                    '"
    .$zeile[TermsOfContract]."',
                    '"
    .$zeile[ProductEAN]."',
                    '"
    .$zeile[ProductPriceOld]."',
                    '"
    .$zeile[CurrencySymbolOfPrice]."',
                    '"
    .$zeile[UpdateDate]."',
                    '"
    .$zeile[ValidFromDate]."',
                    '"
    .$zeile[ValidToDate]."',
                    '"
    .$zeile[ProductShortDescription]."',
                    '"
    .$zeile[ImageLargeURL]."' ),";
      }

    $query substr($query0, -1);
    mysql_unbuffered_query($query) or die(mysql_error()); 
    Die Zeilen

    PHP-Code:
    $fp file_get_contents('ProductData.csv');
    $fp str_replace('"''\"'$fp);
    $fp str_replace('='''$fp);
    file_put_contents('ProductData_anders.csv'$fp); 
    sollen die Sonderzeichen bearbeiten - ich weiß ich sollte auf noch mehr achten aber es tut ja noch nicht einmal mit diesen 2 Umstellungen.

    Wenn ich die Datei nun ausführe kommt 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 75603

    Ich kann es mir eigentlich nicht erklären. Kann mir jemand den Fehler aufzeigen?! Es ist wahrscheinlich nur eine Kleinigkeit die ich alla "den Wald vor lauter Bäumen nicht sehen" nicht finde?!

  • #2
    lass den "Schnulli" mit Str_replace .,. nimm besser mysql_real_escape_string
    `
    und warum zum geier liest du die Datei 2 mal ein .. da stösst du schnell an die maximale Ausführungszeit
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #3
      Zitat von eagle275 Beitrag anzeigen
      lass den "Schnulli" mit Str_replace .,. nimm besser mysql_real_escape_string
      `
      und warum zum geier liest du die Datei 2 mal ein .. da stösst du schnell an die maximale Ausführungszeit
      meinst du das mit mysql_real_escape_string bei den defines oder bei dem query?!?

      Wo lese ich sie zweimal ein? meinst du etwa

      $fp = file_get_contents('ProductData.csv');
      und
      $fp = fopen("ProductData_anders.csv", "r");

      ?!?

      Kommentar


      • #4
        also zuerst liest du die Datei einmal mit file_get_contents ein - und schreibst sie neu ... danach liest du sie ein 2tes mal mit fgetcsv ein ..

        einmal sollte reichen, also nimmst du nur fgetcsv ..

        2) die str_replace zeilen dort oben sind dann auch unnötig, statt dessen musst du die Daten beim schreiben in die Datenbank "escapen" - um eben mit den Quotes keine Probleme zu haben ..


        statt also
        PHP-Code:
        $query .= " ('".$zeile[Shop]."', ....

        // viel besser jedesmal 

        '"
        .(mysql_real_escape_string($zeile[Shop])."' 

        // und analog bei allen anderen Zellen 
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

        Kommentar


        • #5
          Zitat von eagle275 Beitrag anzeigen
          also zuerst liest du die Datei einmal mit file_get_contents ein - und schreibst sie neu ... danach liest du sie ein 2tes mal mit fgetcsv ein ..

          einmal sollte reichen, also nimmst du nur fgetcsv ..

          2) die str_replace zeilen dort oben sind dann auch unnötig, statt dessen musst du die Daten beim schreiben in die Datenbank "escapen" - um eben mit den Quotes keine Probleme zu haben ..


          statt also
          PHP-Code:
          $query .= " ('".$zeile[Shop]."', ....

          // viel besser jedesmal 

          '"
          .(mysql_real_escape_string($zeile[Shop])."' 

          // und analog bei allen anderen Zellen 
          wenn ich dich richtig verstehe und mysql_real_escapes einsetze diese Zeilen

          $fp = file_get_contents('ProductData.csv');
          $fp = str_replace('"', '\"', $fp);
          $fp = str_replace('=', '', $fp);
          file_put_contents('ProductData_anders.csv', $fp);

          komplett weglassen oder nicht?

          Kommentar


          • #6
            habe es nun geändert in:

            PHP-Code:
            <?php
            include('../inc/mysql.inc.php');
            $db mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
            mysql_select_db($sql['db'], $db);


            $fp fopen("ProductData_anders.csv""r");



            //Datenbankverbindung besteht

            define("Shop"0);
            define("ProductId"1);
            define("ProgramId"2);
            define("MerchantProductNumber"3);
            define("ProductName"4);
            define("ProductPrice"5);
            define("ProductLongDescription"6);
            define("Status"7);
            define("MerchantProductCategory"8);
            define("ZanoxProductCategory"9);
            define("ImageSmallURL"10);
            define("ImageMediumURL"11);
            define("ProductManufacturerBrand"12);
            define("ZanoxProductLink"13);
            define("ZanoxProductCategoryNumber"14);
            define("MerchantProductCategoryNumber"15);
            define("DeliveryTime"16);
            define("TermsOfContract"17);
            define("ProductEAN"18);
            define("ProductPriceOld"19);
            define("CurrencySymbolOfPrice"20);
            define("UpdateDate"21);
            define("ValidFromDate"22);
            define("ValidToDate"23);
            define("ProductShortDescription"24);
            define("ImageLargeURL"25);





            $query "INSERT INTO dtg_shop VALUES ";
            while( !
            feof($fp) ) {
              
            $zeile fgetcsv  $fp  4096 ";"  );
              
              
              
            $query .= " ('".mysql_real_escape_string($zeile[Shop])."',
                            '"
            .mysql_real_escape_string($zeile[ProductId])."',
                            "
            .mysql_real_escape_string($zeile[ProgramId]).",
                            "
            .mysql_real_escape_string($zeile[MerchantProductNumber]).",
                            '"
            .mysql_real_escape_string($zeile[ProductName])."',
                            '"
            .mysql_real_escape_string($zeile[ProductPrice])."',
                            '"
            .mysql_real_escape_string($zeile[ProductLongDescription])."',
                             "
            .mysql_real_escape_string($zeile[Status]).",
                            '"
            .mysql_real_escape_string($zeile[MerchantProductCategory])."',
                            '"
            .mysql_real_escape_string($zeile[ZanoxProductCategory])."',
                            '"
            .mysql_real_escape_string($zeile[ImageSmallURL])."',
                            '"
            .mysql_real_escape_string($zeile[ImageMediumURL])."',
                            '"
            .mysql_real_escape_string($zeile[ProductManufacturerBrand])."',
                            '"
            .mysql_real_escape_string($zeile[ZanoxProductLink])."',
                            '"
            .mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."',
                            '"
            .mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."',
                            '"
            .mysql_real_escape_string($zeile[DeliveryTime])."',
                            '"
            .mysql_real_escape_string($zeile[TermsOfContract])."',
                            '"
            .mysql_real_escape_string($zeile[ProductEAN])."',
                            '"
            .mysql_real_escape_string($zeile[ProductPriceOld])."',
                            '"
            .mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."',
                            '"
            .mysql_real_escape_string($zeile[UpdateDate])."',
                            '"
            .mysql_real_escape_string($zeile[ValidFromDate])."',
                            '"
            .mysql_real_escape_string($zeile[ValidToDate])."',
                            '"
            .mysql_real_escape_string($zeile[ProductShortDescription])."',
                            '"
            .mysql_real_escape_string($zeile[ImageLargeURL])."' ),";
              }

            $query substr($query0, -1);
            mysql_unbuffered_query($query) or die(mysql_error());


            ?>
            bekomme aber immer noch die 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 75603

            Kommentar


            • #7
              genau

              wenn dir das mit mysql_real_escape_string in der query etwas viel tipp-arbeit ist, kannst du

              PHP-Code:


              // am Ende der sql.php

              class MysqlStringEscaper {

                  function 
              __get($value) {
                      return 
              mysql_real_escape_string($value);
                  }
              }

              // im Code selbst nach dem require ("sql.php");
              $str=new MysqlStringEscaper;

              // dann vereinfacht sich 
              '".(mysql_real_escape_string($zeile[Shop])."' 

              //zu

              '".$str->$zeile[Shop]."' 

              EDIT :

              bau mal bitte :

              echo $query."<br>";

              ein, direkt vor dem

              mysql_query ($query)

              Edit 2:

              bitte auch in den Feldern, die reine Zahlen enthalten (ProgramID) mit einfach Quotes arbeiten - die Datenbank erkennt schon, dass es Zahlen sind .. aber ich vermute, dass eines der Felder leer ist
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              Kommentar


              • #8
                Zitat von eagle275 Beitrag anzeigen
                genau

                wenn dir das mit mysql_real_escape_string in der query etwas viel tipp-arbeit ist, kannst du

                PHP-Code:


                // am Ende der sql.php

                class MysqlStringEscaper {

                    function 
                __get($value) {
                        return 
                mysql_real_escape_string($value);
                    }
                }

                // im Code selbst nach dem require ("sql.php");
                $str=new MysqlStringEscaper;

                // dann vereinfacht sich 
                '".(mysql_real_escape_string($zeile[Shop])."' 

                //zu

                '".$str->$zeile[Shop]."' 

                EDIT :

                bau mal bitte :

                echo $query."<br>";

                ein, direkt vor dem

                mysql_query ($query)
                Das Tipppen ist kein Problem danke trotzdem für den Rat.

                Aber ich bekomme immer noch die selbe Fehlermeldung?!

                Kommentar


                • #9
                  Habe ich schon eingebaut -> nur allerdings nen laaaanger code weil die csv datei 3000 Zeilen hat - das erste Beispiel wäre:

                  INSERT INTO dtg_shop VALUES ('Shop', 'ProductId', ProgramId, MerchantProductNumber, 'ProductName', 'ProductPrice', 'ProductLongDescription', Status, 'MerchantProductCategory', 'ZanoxProductCategory', 'ImageSmallURL', 'ImageMediumURL', 'ProductManufacturerBrand', 'ZanoxProductLink', 'ZanoxProductCategoryNumber', 'MerchantProductCategoryNumber', 'DeliveryTime', 'TermsOfContract', 'ProductEAN', 'ProductPriceOld', 'CurrencySymbolOfPrice', 'UpdateDate', 'ValidFromDate', 'ValidToDate', 'ProductShortDescription', 'ImageLargeURL' ), ('ESPRIT', '4298799367', 318, B6582, 'Mini-Slips im Doppelpack', '9.95', '#NAME?', 1, 'esprit / kids / mini girls / body/swimwear / Mini-Slips im Doppelpack', '', 'http://pics.esprit.de/Shop/PicDestStyleThumb/B6582_BO.gif', 'http://pics.esprit.de/Shop/PicDestStyleOver_List_Cross/B6582_BO.jpg', 'esprit', 'http://www.zanox-affiliate.de/ppc/?16112458C606511618&ULP[[B6582&fromzx3&tohttp%253A%252F%252Fwww.esprit.de%2 52F%253Fcamp%253DDE_IC_ZX_AF_20_002%2526welt%253Dk ids%2526downwelt%253Dall_products%2526division%253 Dmini girls%2526tmpl%253D_StandardV2%2526id%253D00135517]]', '', '', '3 Tage', '', '4.05E+17', '0', 'EUR', '26.07.2010 13:51', '', '', 'niedlich gestylte Mini-Slips mit Logo-Print im Doppelpack - Farbe: super light rose', 'http://pics.esprit.de/Shop/PicDestStyleDsl/B6582_BO.jpg' ),

                  Kommentar


                  • #10
                    und die echo-Ausgabe ? wie sieht denn eine deiner Query's aus ?
                    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                    Kommentar


                    • #11
                      na da ham wir doch was ...

                      die Datenwerte kommen in Apostrophe

                      ich versuch es mal ...

                      KURZ : du darfst die Titelzeile nicht schreiben - die enthält doch die ganzen Spaltennamen...

                      ('ESPRIT', '4298799367', '318', 'B6582', 'Mini-Slips im Doppelpack', '9.95', '#NAME?', '1', 'esprit / kids / mini girls / body/swimwear / Mini-Slips im Doppelpack', '', 'http://pics.esprit.de/Shop/PicDestStyleThumb/B6582_BO.gif', 'http://pics.esprit.de/Shop/PicDestStyleOver_List_Cross/B6582_BO.jpg', 'esprit', 'http://www.zanox-affiliate.de/ppc/?16112458C606511618&ULP[[B6582&fromzx3&tohttp%253A%252F%252Fwww.esprit.de%2 52F%253Fcamp%253DDE_IC_ZX_AF_20_002%2526welt%253Dk ids%2526downwelt%253Dall_products%2526division%253 Dmini girls%2526tmpl%253D_StandardV2%2526id%253D00135517]]', '?????', '', '3 Tage', '', '4.05E+17'??????, '0', 'EUR', '26.07.2010 13:51', ??????'', '', 'niedlich gestylte Mini-Slips mit Logo-Print im Doppelpack - Farbe: super light rose', 'http://pics.esprit.de/Shop/PicDestStyleDsl/B6582_BO.jpg' )Hier muss es zuende sein ..

                      PHP unterstützt meines Wissens nach nicht mehrere Inserts in einem Query Statement...

                      das ganze sollte dem Muster INSERT INTO tabelle () VALUES () entsprechen
                      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                      Kommentar


                      • #12
                        Zitat von eagle275 Beitrag anzeigen
                        na da ham wir doch was ...

                        die Felder im Abschnitt

                        INSERT INTO tabelle ( spalte1 , spalte2 ...)

                        dürfen nicht in Apostrophe stehen - nur die Datenwerte kommen in Apostrophe

                        außerdem kommt nach

                        ) kein Komma sondern VALUES (
                        INSERT INTO tabelle ( spalte1 , spalte2 ...) das war die erste IMportzeile aber mir ist aufgefallen, dass ich die Spalten des tables gar nicht nannte -> habe es nun so geändert:

                        PHP-Code:
                        <?php
                        include('../inc/mysql.inc.php');
                        $db mysql_connect($sql['host'],$sql['uid'],$sql['psw']) or die ("Keine Verbindung zu der Datenbank möglich.");
                        mysql_select_db($sql['db'], $db);


                        $fp fopen("ProductData_anders.csv""r");



                        //Datenbankverbindung besteht

                        define("Shop"0);
                        define("ProductId"1);
                        define("ProgramId"2);
                        define("MerchantProductNumber"3);
                        define("ProductName"4);
                        define("ProductPrice"5);
                        define("ProductLongDescription"6);
                        define("Status"7);
                        define("MerchantProductCategory"8);
                        define("ZanoxProductCategory"9);
                        define("ImageSmallURL"10);
                        define("ImageMediumURL"11);
                        define("ProductManufacturerBrand"12);
                        define("ZanoxProductLink"13);
                        define("ZanoxProductCategoryNumber"14);
                        define("MerchantProductCategoryNumber"15);
                        define("DeliveryTime"16);
                        define("TermsOfContract"17);
                        define("ProductEAN"18);
                        define("ProductPriceOld"19);
                        define("CurrencySymbolOfPrice"20);
                        define("UpdateDate"21);
                        define("ValidFromDate"22);
                        define("ValidToDate"23);
                        define("ProductShortDescription"24);
                        define("ImageLargeURL"25);





                        $query "INSERT INTO dtg_shop
                                         (Shop,
                                         ProductId,
                                         ProgramId,
                                         MerchantProductNumber,
                                         ProductName,
                                         ProductPrice,
                                         ProductLongDescription,
                                         Status,
                                         MerchantProductCategory,
                                         ZanoxProductCategory,
                                         ImageSmallURL,
                                         ImageMediumURL,
                                         ProductManufacturerBrand,
                                         ZanoxProductLink,
                                         ZanoxProductCategoryNumber,
                                         MerchantProductCategoryNumber,
                                         DeliveryTime,
                                         TermsOfContract,
                                         ProductEAN,
                                         ProductPriceOld,
                                         CurrencySymbolOfPrice,
                                         UpdateDate,
                                         ValidFromDate,
                                         ValidToDate,
                                         ProductShortDescription,
                                         ImageLargeURL) VALUES "
                        ;
                                         
                        while( !
                        feof($fp) ) {
                          
                        $zeile fgetcsv  $fp  4096 ";"  );
                          
                          
                          
                        $query .= " ('".mysql_real_escape_string($zeile[Shop])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductId])."',
                                        "
                        .mysql_real_escape_string($zeile[ProgramId]).",
                                        "
                        .mysql_real_escape_string($zeile[MerchantProductNumber]).",
                                        '"
                        .mysql_real_escape_string($zeile[ProductName])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductPrice])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductLongDescription])."',
                                         "
                        .mysql_real_escape_string($zeile[Status]).",
                                        '"
                        .mysql_real_escape_string($zeile[MerchantProductCategory])."',
                                        '"
                        .mysql_real_escape_string($zeile[ZanoxProductCategory])."',
                                        '"
                        .mysql_real_escape_string($zeile[ImageSmallURL])."',
                                        '"
                        .mysql_real_escape_string($zeile[ImageMediumURL])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductManufacturerBrand])."',
                                        '"
                        .mysql_real_escape_string($zeile[ZanoxProductLink])."',
                                        '"
                        .mysql_real_escape_string($zeile[ZanoxProductCategoryNumber])."',
                                        '"
                        .mysql_real_escape_string($zeile[MerchantProductCategoryNumber])."',
                                        '"
                        .mysql_real_escape_string($zeile[DeliveryTime])."',
                                        '"
                        .mysql_real_escape_string($zeile[TermsOfContract])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductEAN])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductPriceOld])."',
                                        '"
                        .mysql_real_escape_string($zeile[CurrencySymbolOfPrice])."',
                                        '"
                        .mysql_real_escape_string($zeile[UpdateDate])."',
                                        '"
                        .mysql_real_escape_string($zeile[ValidFromDate])."',
                                        '"
                        .mysql_real_escape_string($zeile[ValidToDate])."',
                                        '"
                        .mysql_real_escape_string($zeile[ProductShortDescription])."',
                                        '"
                        .mysql_real_escape_string($zeile[ImageLargeURL])."' ),";
                          }

                        echo 
                        $query."<br>";

                        $query substr($query0, -1);
                        mysql_unbuffered_query($query) or die(mysql_error());


                        ?>
                        dann sieht der echo $query ao aus:

                        INSERT INTO dtg_shop (Shop, ProductId, ProgramId, MerchantProductNumber, ProductName, ProductPrice, ProductLongDescription, Status, MerchantProductCategory, ZanoxProductCategory, ImageSmallURL, ImageMediumURL, ProductManufacturerBrand, ZanoxProductLink, ZanoxProductCategoryNumber, MerchantProductCategoryNumber, DeliveryTime, TermsOfContract, ProductEAN, ProductPriceOld, CurrencySymbolOfPrice, UpdateDate, ValidFromDate, ValidToDate, ProductShortDescription, ImageLargeURL) VALUES ('Shop', 'ProductId', ProgramId, MerchantProductNumber, 'ProductName', 'ProductPrice', 'ProductLongDescription', Status, 'MerchantProductCategory', 'ZanoxProductCategory', 'ImageSmallURL', 'ImageMediumURL', 'ProductManufacturerBrand', 'ZanoxProductLink', 'ZanoxProductCategoryNumber', 'MerchantProductCategoryNumber', 'DeliveryTime', 'TermsOfContract', 'ProductEAN', 'ProductPriceOld', 'CurrencySymbolOfPrice', 'UpdateDate', 'ValidFromDate', 'ValidToDate', 'ProductShortDescription', 'ImageLargeURL' ), ('ESPRIT', '4298799367', 318, B6582, 'Mini-Slips im Doppelpack', '9.95', '#NAME?', 1, 'esprit / kids / mini girls / body/swimwear / Mini-Slips im Doppelpack', '', 'http://pics.esprit.de/Shop/PicDestStyleThumb/B6582_BO.gif', 'http://pics.esprit.de/Shop/PicDestStyleOver_List_Cross/B6582_BO.jpg', 'esprit', 'http://www.zanox-affiliate.de/ppc/?16112458C606511618&ULP[[B6582&fromzx3&tohttp%253A%252F%252Fwww.esprit.de%2 52F%253Fcamp%253DDE_IC_ZX_AF_20_002%2526welt%253Dk ids%2526downwelt%253Dall_products%2526division%253 Dmini girls%2526tmpl%253D_StandardV2%2526id%253D00135517]]', '', '', '3 Tage', '', '4.05E+17', '0', 'EUR', '26.07.2010 13:51', '', '', 'niedlich gestylte Mini-Slips mit Logo-Print im Doppelpack - Farbe: super light rose', 'http://pics.esprit.de/Shop/PicDestStyleDsl/B6582_BO.jpg' ), ('ESPRIT'................

                        aber immer noch dieselbe 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 75629

                        ich verstehe nicht einmal gena was diese bedeutet und gefunden über die Bedeutung habe ich auch nichts wirklich aufschlussreiches...

                        Kommentar


                        • #13
                          Zitat von eagle275 Beitrag anzeigen
                          na da ham wir doch was ...

                          die Datenwerte kommen in Apostrophe

                          ich versuch es mal ...

                          KURZ : du darfst die Titelzeile nicht schreiben - die enthält doch die ganzen Spaltennamen...

                          ('ESPRIT', '4298799367', '318', 'B6582', 'Mini-Slips im Doppelpack', '9.95', '#NAME?', '1', 'esprit / kids / mini girls / body/swimwear / Mini-Slips im Doppelpack', '', 'http://pics.esprit.de/Shop/PicDestStyleThumb/B6582_BO.gif', 'http://pics.esprit.de/Shop/PicDestStyleOver_List_Cross/B6582_BO.jpg', 'esprit', 'http://www.zanox-affiliate.de/ppc/?16112458C606511618&ULP[[B6582&fromzx3&tohttp%253A%252F%252Fwww.esprit.de%2 52F%253Fcamp%253DDE_IC_ZX_AF_20_002%2526welt%253Dk ids%2526downwelt%253Dall_products%2526division%253 Dmini girls%2526tmpl%253D_StandardV2%2526id%253D00135517]]', '?????', '', '3 Tage', '', '4.05E+17'??????, '0', 'EUR', '26.07.2010 13:51', ??????'', '', 'niedlich gestylte Mini-Slips mit Logo-Print im Doppelpack - Farbe: super light rose', 'http://pics.esprit.de/Shop/PicDestStyleDsl/B6582_BO.jpg' )Hier muss es zuende sein ..

                          PHP unterstützt meines Wissens nach nicht mehrere Inserts in einem Query Statement...

                          das ganze sollte dem Muster INSERT INTO tabelle () VALUES () entsprechen
                          UNd wie soll ich dann die ganzen 3000 Einträge reinbekommen - das muss doch via insert automatisch laufen oder nicht?

                          Kommentar


                          • #14
                            kurz bedeutet die Fehlermeldung, dass deine INSERT anweisung "ihm nicht gefällt" ..

                            speziell stolpert er an der Stelle, wo dein Insert so aussieht, wie in der Fehlermeldung geschrieben...

                            höchstwahrscheinlich versuchst du '' (2 apostrophe mit nichts dazwischen) in ein Datenbank-Feld zu schreiben, das nur Zahlen haben will ...

                            daneben musst du noch die Spalte MerchantProductNumber anpassen .. die erhält als Datenwert B6562 <-- das ist eine Zeichenkette, keine Zahl .. also gehört der Datenwert in Apostrophe , und das Feld in deiner Datenbank muss varchar oder char oder text oder sowas sein

                            daneben musst du mal nachschauen

                            du schreibst einen Datums / Zeitwert in die Datenbank ... da ist mysql laut Handbuch zwar flexibel, aber es bevorzugt definitiv das amerikanische Format (yyyy-mm-dd) beim Datum ..

                            und wie gesagt .. eigentlich immer nur eine Zeile in die Datenbank, dazu durchläufst du das ganze doch als schleife


                            für deine 3000 Einträge ...

                            lass deine schleife JEDESMAL "INSERT INTO tabelle (spalten) VALUES (werte)" schreiben, statt mit , eine weitere Zeile anzuhängen

                            natürlich jedesmal auch abschicken,
                            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

                            Kommentar


                            • #15
                              Zitat von eagle275 Beitrag anzeigen
                              kurz bedeutet die Fehlermeldung, dass deine INSERT anweisung "ihm nicht gefällt" ..

                              speziell stolpert er an der Stelle, wo dein Insert so aussieht, wie in der Fehlermeldung geschrieben...

                              höchstwahrscheinlich versuchst du '' (2 apostrophe mit nichts dazwischen) in ein Datenbank-Feld zu schreiben, das nur Zahlen haben will ...

                              daneben musst du noch die Spalte MerchantProductNumber anpassen .. die erhält als Datenwert B6562 <-- das ist eine Zeichenkette, keine Zahl .. also gehört der Datenwert in Apostrophe , und das Feld in deiner Datenbank muss varchar oder char oder text oder sowas sein

                              daneben musst du mal nachschauen

                              du schreibst einen Datums / Zeitwert in die Datenbank ... da ist mysql laut Handbuch zwar flexibel, aber es bevorzugt definitiv das amerikanische Format (yyyy-mm-dd) beim Datum ..

                              und wie gesagt .. eigentlich immer nur eine Zeile in die Datenbank, dazu durchläufst du das ganze doch als schleife


                              für deine 3000 Einträge ...

                              lass deine schleife JEDESMAL "INSERT INTO tabelle (spalten) VALUES (werte)" schreiben, statt mit , eine weitere Zeile anzuhängen

                              natürlich jedesmal auch abschicken,

                              habe nun überall die apos eingefügt.
                              Die Datumseingaben sind relativ egal weil ich in der DB ein VARCHAR drin habe - nur Status und PropramId sind INTs

                              Die Fehlermeldung ist nun:


                              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 75652

                              Aber wie bringe ich es denn zu nur einem Eintrag und dann erneutem durchführen?!

                              Kommentar

                              Lädt...
                              X