Rico: einfaches Häckchen ' in die DB bekommen

Hallöchen,

hat einer Ahnung, wie ich mit dem INSERT Befehl einen String, der einfache Häckchen ' beinhaltet, einfügen kann. Sicherlich ausmaskieren, aber wie mache ich das bei einer MySQL-DB und wie bei einer Access-DB. Die üblichen Sachen wie ' funktionieren nicht.

Danke im voraus

  1. http://www.php.net/manual/en/function.htmlspecialchars.php

    das sollte genuegen, wenn du mit php arbeitest ...

    1. http://www.php.net/manual/en/function.htmlspecialchars.php

      das sollte genuegen, wenn du mit php arbeitest ...

      hat nix mit php zu tun, es soll rein SQL-technisch sein. Ein Java-Client schickt den SQL-Befehl ab. Frage ist, wie maskiert man ein ' bei einem String-Insert aus.

      1. Hallo Rico,

        hat einer Ahnung, wie ich mit dem INSERT Befehl einen String, der einfache Häckchen ' beinhaltet, einfügen kann. Sicherlich ausmaskieren, aber wie mache ich das bei einer MySQL-DB und wie bei einer Access-DB. Die üblichen Sachen wie ' funktionieren nicht.

        Also bei mir funktioniert

        INSERT INTO TB_Test VALUES ('Der war's');

        wunderbar (MySQL 3.23.49)

        und sowohl mit MySQL und Access

        INSERT INTO TB_Test VALUES ("Der war's");

        Merke: Nicht alle SQL-Datenbankmanagementsysteme setzen auf die gleiche SQL-Syntax

        Wenn Du aber auf beliebige Datenbanken von der gleichen Anwendung und mit verschiedenen Daten zugreifen willst, die Java dir zusammensetzt, dann muss Java auch den entsprechenden String für das Zielsystem zusammensetzen

        Gruß,

        Vinzenz

        1. Moin!

          Also bei mir funktioniert

          INSERT INTO TB_Test VALUES ('Der war's');

          wunderbar (MySQL 3.23.49)

          und sowohl mit MySQL und Access

          INSERT INTO TB_Test VALUES ("Der war's");

          Merke: Nicht alle SQL-Datenbankmanagementsysteme setzen auf die gleiche SQL-Syntax

          Wenn Du aber auf beliebige Datenbanken von der gleichen Anwendung und mit verschiedenen Daten zugreifen willst, die Java dir zusammensetzt, dann muss Java auch den entsprechenden String für das Zielsystem zusammensetzen

          Eigentlich alle Schnittstellen zu allen Datenbanken bieten eine Funktion an, der man den uncodierten String übergibt, und die alle für die Datenbank schädlichen Sonderzeichen maskiert. Im Falle von PHP mit MySQL wäre das mysql_escape_string(), es gibt in PHP aber für alle ansprechbaren DBMS solche Funktionen. Hierbei wird die Eigenart jeder einzelnen Datenbank berücksichtigt. Es ist z.B. nicht so, dass der Backslash immer ein gültiges Escape-Zeichen für jede Datenbank ist.

          Das Problem ist dann nur, dass in PHP alle Usereingaben standardmäßig Escape-Zeichen enthalten. Die muß man zuerst mal entfernen - aber eben nur, wenn die Option magic_quotes_gpc eingeschaltet ist.

          - Sven Rautenberg

          --
          Diese Signatur gilt nur am Freitag.