Thread Eingaben lesen und in MySql DB schreiben (16 answers)
Opened by leo11 at 2009-09-02 20:02

topeg
 2009-09-02 20:38
#125323 #125323
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Wenn du das einfügen so machst:
Code (perl): (dl )
1
2
$st=$dbi->prepare(q{INSERT INTO X ("W1", "W2") VALUES (?,?)});
$st->execute($wert1,$wert2);
Sollte es zu keinen Problemen kommen.

Wenn du das Einfügen aber so machst:
Code (perl): (dl )
$dbi->do(qq{INSERT INTO X ("W1","W2") VALUES ($wert1,$wert2)});
bekommst Probleme mit dem Quoten.
DBI bietet zwar eine Funktion, des Entwerten von Geschützten Zeichen aber die ist nicht immer zuverlässig.

Das Problem ist grundsätzlich, dass der String wie er ist zur DB gesendet wird als ganzes interpretiert wird und die Perl-Variablen schon ersetzt worden sind.
Stehen aber "?" als Platzhalter darin weiß die DB, dass nach dem "prepare" Daten mittels "execute" nachgeschoben werden und braucht sie nicht aus den SQL-String heraus schneiden, oder sonst wie zu interpretieren.

View full thread Eingaben lesen und in MySql DB schreiben