Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] CSV-Datei-Import in MySQL per Upload-Script

Einklappen

Neue Werbung 2019

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

  • [Erledigt] CSV-Datei-Import in MySQL per Upload-Script

    Hall zusammen,

    ich versuche per PHPScript eine CSV-Datei in eine MySql DB zu importieren.

    Folgende Fehlermeldung bringt mich zum verzweifeln :

    SHOW CREATE TABLE test fehlgeschlagen: 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 '-hp.test' at line 1
    Fehler beim Kopieren der Tabelle test_backup: 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 '-hp.test' at line 1

    Die DB ist bei der Benennung mit einem Minuszeichen versehen, wie z.B. "meine-hp", der Script überträgt nur "-hp" anstatt "meine-hp".

    Ich hoffe, dass kann jemand nachvollziehen.

    Vorab vielen Dank für Eure Hilfe ..

    Schöne Grüße
    Madien

  • #2
    MySQL :: MySQL 5.1 Reference Manual :: 8.2 Schema Object Names
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Danke ChrisB, aber mein english=ausreichend ...

      Naja, danke trotzdem.

      BG
      Madien

      Kommentar


      • #4
        ich mag mich irren aber ... minus ist kein zulässiges Zeichen für Spalten und Tabellennamen .. versuchs mal mit Underscore "_" ...

        daneben ist deine selbst generierte Fehlermeldung höchst irreführend .,

        SHOW CREATE TABLE gibts auch nicht ...

        entweder SHOW TABLES oder DESCRIBE TABLE X oder CREATE TABLE X
        "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
          ich mag mich irren aber ... minus ist kein zulässiges Zeichen für Spalten und Tabellennamen .. versuchs mal mit Underscore "_" ...

          daneben ist deine selbst generierte Fehlermeldung höchst irreführend .,

          SHOW CREATE TABLE gibts auch nicht ...

          entweder SHOW TABLES oder DESCRIBE TABLE X oder CREATE TABLE X
          Danke eagle275, aber der Tabellenname ist in diesem Fall "test"

          Die Datenbank ist mit einem minus versehen "meine-hp", gilt das auch für Datenbanken?

          BG
          Madien

          Kommentar


          • #6
            was für Tabellennamen gilt, gilt auch für die Datenbank insgesamt ...
            "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


            • #7
              Zitat von madien Beitrag anzeigen
              Danke ChrisB, aber mein english=ausreichend ...
              Dann arbeite daran, wenn du Programmieren willst.


              Ja, die Einschränkung gilt für Sonderzeichen in allen Bezeichnern.
              Also entweder wählst du einen anderen, weniger problematischen Datenbank-Namen - oder du quotest den Bezeichner, wie auf der verlinkten Seite beschrieben, in dem du ihn in sog. Backticks ` einfasst.
              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

              Kommentar


              • #8
                die Backticks darfst du aber ihrerseits wieder nicht mit normalem Apostroph ' verwechseln ...

                und wo wir dabei sind... der Punkt ist auch nicht, weil den Mysql verwendet, um datenbank.Tabelle.Spalte zu ermöglichen - sogenannte vollqualifizierte Bezeichner, die dann bei Joins in Abfragen wichtig werden
                "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


                • #9
                  Zitat von ChrisB Beitrag anzeigen
                  Dann arbeite daran, wenn du Programmieren willst.


                  Ja, die Einschränkung gilt für Sonderzeichen in allen Bezeichnern.
                  Also entweder wählst du einen anderen, weniger problematischen Datenbank-Namen - oder du quotest den Bezeichner, wie auf der verlinkten Seite beschrieben, in dem du ihn in sog. Backticks ` einfasst.
                  Ja das tue, ich besuche derzeit einen Englisch-Kurs

                  Vielen Dank für die Tips, ich werde es mal versuchen..

                  BG
                  Madien

                  Kommentar


                  • #10
                    Zitat von eagle275 Beitrag anzeigen
                    die Backticks darfst du aber ihrerseits wieder nicht mit normalem Apostroph ' verwechseln ...

                    und wo wir dabei sind... der Punkt ist auch nicht, weil den Mysql verwendet, um datenbank.Tabelle.Spalte zu ermöglichen - sogenannte vollqualifizierte Bezeichner, die dann bei Joins in Abfragen wichtig werden
                    Ja ich weiß, aber was hiervon muss ich backticken? oder wie?

                    PHP-Code:
                    $dataTables=array('test','test1','test2','test3''test4'); 
                    Naja, ich verstehe das noch nicht so ganz

                    Trotzdem Vielen Dank..

                    Kommentar


                    • #11
                      davon im grunde gar nichts - denn das sind ja wohl Werte , die in die Datenbank sollen ?


                      oder sind das deine Tabellennamen in Mysql ?

                      in Backticks kannst du schreiben:
                      - den Datenbank-Namen
                      - alle Tabellen- und Spaltennamen innerhab der Tabellen

                      NIE in Backticks kommen die Datenwerte .. die gehören in Apostrophe '
                      "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
                        davon im grunde gar nichts - denn das sind ja wohl Werte , die in die Datenbank sollen ?


                        oder sind das deine Tabellennamen in Mysql ?

                        in Backticks kannst du schreiben:
                        - den Datenbank-Namen
                        - alle Tabellen- und Spaltennamen innerhab der Tabellen

                        NIE in Backticks kommen die Datenwerte .. die gehören in Apostrophe '
                        Das sind angelegte Tabellennamen die per array ausgelsen werden. Der Script packt dazu den Datenbanknamen vor die Tabelle, wie z.B Datenbank.tabelle =
                        meine-hp.test

                        Kommentar


                        • #13
                          tja in dem Fall

                          `meine-hp`.`test` ..oder `meine-hp`.test

                          wegen des Minus muss der Datenbank-Name in Backticks - oder du entscheidest dich um zu meine_hp .. das wäre auch ohne Backticks erlaubt
                          "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


                          • #14
                            Wenn du „durchnummerierte“ Tabellennamen hast, dann ist ziemlich sicher dein Datenmodell fehlerhaft.
                            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

                            Kommentar


                            • #15
                              Ich versuche das mal mit dem Backticken ...

                              @ChrisB
                              Das war nur so als BSp. angegeben...

                              Nochmals Vielen Dank an Euch beide.

                              BG
                              MAdien

                              Kommentar

                              Lädt...
                              X