GELÖST Probleme mit MYSQL Syntax - wie behandele ich ein Hochkomma >>'<<



  • Hallo

    habe das Problem das ich beim einfügen einiger Datensätze den MySQL Fehler 1064 bekomme. Es handelt sich dabei um Musik Alben Namen, die erstaunlich oft Hochkommatas enthalten.
    Kann mir jemand verraten wie ich die behandeln muss? Habe dazu schon die MySQL.com Seite befragt, bin aber nicht fündig geworden.

    Ein Fehler sieht z.B. so aus:

    INSERT INTO b10c4e0c(DISCID ,Artist,Title,Year,Gener,Song_Title0 ,Song_Artist0 ,Song_Title1 ,Song_Artist1 ,Song_Title2 ,Song_Artist2 ,Song_Title3 ,Song_Artist3 ,Song_Title4 ,Song_Artist4 ,Song_Title5 ,Song_Artist5 ,Song_Title6 ,Song_Artist6 ,Song_Title7 ,Song_Artist7 ,Song_Title8 ,Song_Artist8 ,Song_Title9 ,Song_Artist9 ,Song_Title10 ,Song_Artist10 ,Song_Title11 ,Song_Artist11 ) 
    VALUES ('b10c4e0c','Various ',' New York Undercover','1998','Soundtrack','Teena Marie ',' Wishing On a Star','Brownstone ',' Don't Ask My Neighbor','Gerald Levert ',' A Song For You','Chaka Khan ',' Sweet Thing','Michael DeLorenzo ',' Don't Let Me Be Lonely Tonight','BB King ',' The Thrill Is Gone','112 ',' After the Love Is Gone','Xscape ',' All This Love','Tito Nieves ',' Lo Prometido Es Deuda','Mary J. Blige ',' Our Love','Barrio Boys ',' A Love of Your Own','K-Ci and JoJo ',' Love Ballad')
    --FEHLER---
    query.error()  : 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 't Ask My Neighbor','Gerald Levert ',' A Song For You','Chaka Khan ',' Sweet Thin' at line 1
    query.errnum() : 1064
    --ENDE---
    

    Danke schon mal!!!!!!



  • [edit] Oh mann, wer lesen kann ich klar im Vorteil :-/, sry[/edit]

    Mit was entwickelst du ? Oft gibt es eine "xyzEscape" funktion oder parametrierte Statments. Zu Fuß kannst Du auch einfach das Hochkomma mal (testweise) mit \<Hochkomma> ersetzen, das Hochkomma also Escapen.



  • kp....

    Arbeite unter Linux-Debian... gcc version 4.1.2 und mit dem offiziellen C++ Konnektor... http://tangentsoft.net/mysql++/

    und benutze eine einfach quere.store() Anweisung.....



  • GELÖST

    Bin auch zu blöde, läuft im Prinzip wie C++ und den Strings. Escape Zeichen....
    aus >>'<< wird >>\'<<
    und aus >>\<< wird ein >>\<<
    man beachte noch den C++ üblichen umbau das >>\<< auch ein Sonderzeichen ist und FERTIG...

    DANKE

    Habe aber noch ein anderes Problem, das ich zur Zeit überhaupt nicht durchblicke...
    Beim erzeugen mancher Tabellen bekomme ich auch den Err 1064, ist mir in dem Wust vorher überhaupt nicht aufgefallen.
    Der Creat Table String sieht wie folgt aus.

    CREATE TABLE 8e07e20b (DISCID CHAR(9),Artist CHAR(13),Title CHAR(14),
    Year CHAR(5),Song_Title0 CHAR(20),Song_Artist0 CHAR(13),
    Song_Title1 CHAR(34),Song_Artist1 CHAR(13),Song_Title2 CHAR(24),
    Song_Artist2 CHAR(13),Song_Title3 CHAR(27),Song_Artist3 CHAR(13),Song_Title4 CHAR(16),Song_Artist4 CHAR(13),Song_Title5 CHAR(27),
    Song_Artist5 CHAR(13),Song_Title6 CHAR(20),Song_Artist6 CHAR(13),Song_Title7 CHAR(16),Song_Artist7 CHAR(13),Song_Title8 CHAR(25),
    Song_Artist8 CHAR(13),Song_Title9 CHAR(20),Song_Artist9 CHAR(13),
    Song_Title10 CHAR(9),Song_Artist10 CHAR(13))
    

    und gibt den mir nichts sagenden Fehler.

    query.error()  : 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 '8e07e20b (DISCID CHAR(9),Artist CHAR(13),
    Title CHAR(14),Year CHAR(5),Song_Title0' at line 1
    query.errnum() : 1064
    

    Komm überhaupt nicht drauf was es da zu bemängel gibt, weil auch gut 3/4 aller anderen Datensätze durchrauschen und zum Fehler 1064 steht im Online Referenzhandbuch http://dev.mysql.com/doc/refman/5.1/de/error-messages-server.html nur:

    Fehler: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)
    Meldung: %s bei '%s' in Zeile %d

    Was mir überhaupt nichts sagt.
    Weiß auch da jemand Rat?



  • Hy

    Bin mir nicht mehr ganz sicher, aber soweit ich weiß dürfen Tabellen doch nur mit einen Buchstaben anfangen und nicht mit einer Zahl, des scheint woll dein Problem zu sein.

    Mfg Marco



  • Irgendwie sieht das stark nach einem äußerst ungeeigneten Schema aus (unabhängig von Deiner Fehlermeldung). Lies Dir doch bitte mal das hier durch: Wikipedia: Normalisierung (Datenbank)



  • Danke, stimmt man darf keine Tables Erzeugen die mit einer Zahl beginne, man lernt doch nie aus. Und ja, die Tabellen sind schlimm formatiert, ist ja aber noch die Alpha Version. Als erste mal muss alles Technisch funktionieren, dann mache ich mich ans Datenbank Designe. Aber trotzdem Danke ALLEN!


Anmelden zum Antworten