Frage zu Sonderzeichen in sql sqlite oder mysql



  • Hallo,

    ich habe gerade erfahren das die SQL Parser wohl nicht wirklich mit Anführungszeichen umgehen können. Wenn ich es richtig verstanden habe verwendet man für String Übergaben einzelner Values ein einfaches Anführungszeichen.
    Meine Fragen sind nun:

    a.) soll ich einfache Anführungszeichen nehmen oder sollen es doppelte sein weil ich ja im englischen öfters soetwas benötige:

    thenoname's Frage
    

    Ich würde ja lieber doppelte Anführungszeichen nehmen und dann die " durch zwei einzelne ' ' ersetzen, aber dasklappt bei sqlite z.B.nicht, dort ist dann das einfache bei thenoname's das Ende der Textübergabe obwohl mit " begonnen wurde.

    INSERT INTO "table_name" (column1, column2)
    VALUES ("value1", "thenoname's Frage")
    

    Oder ersetzt ihr das gegen tags wie *anführungszeicheneinfach* und konvertiert sie nach und vor dem insert und select?

    b.) gibt es noch weitere Ausnahmen und Sonderzeichen die nicht verwendet werden dürfen



  • such mal nach mysql_real_escape_string 😉



  • Das finde ich leider nicht bei SQLite 😞



  • King George schrieb:

    such mal nach mysql_real_escape_string 😉

    Wie der Name schon sagt handelt es sich um eine MySQL-Funktionalität.

    Probiers mal so:

    INSERT INTO "table_name" (column1, column2)
    VALUES ("value1", "thenoname\'s Frage") ESCAPE '\'

    Ansonsten Google mal nach SQLite Escape.



  • IMMER Hostvariablen verwenden!!! NIE den string selbst in das SQL-Statement einbauen. Diese escape-Funktionen sind nur workarounds. Dann hast Du nicht nur keine Probleme mit Hochkommata sondern vor allen dingen keine Probleme mit SQL-Injection.

    Bei mysql wären dass die *mysql_stmt_**-Funktionen und bei sqlite sqlite3_prepare, sqlite3_bind_parameter_index und sqlite3_step.


Anmelden zum Antworten