regex zum wandeln einer Zeile in einen gültigen sql-insert befehl

08/08/2008 - 11:28 von Gerhard Wolf | Report spam
Hallo,

ich muss in einer Komma getrennten Zeile alle ungültigen Zahlenangaben
und Texte in Anführungsstriche stellen:

z.B.

3213,2312.33,Juhu,21.23-asdw,blabla
muss zu:
3213,2312.33,"Juhu","21.23-asdw","blabla"

werden (Hier soll ein SQL insert befehl entstehen).
Ist das mit einem Regulàren Ausdruck möglich (wenn ja wie)?
 

Lesen sie die antworten

#1 Wolf Behrenhoff
08/08/2008 - 11:38 | Warnen spam
Gerhard Wolf wrote:
Hallo,

ich muss in einer Komma getrennten Zeile alle ungültigen Zahlenangaben
und Texte in Anführungsstriche stellen:

z.B.

3213,2312.33,Juhu,21.23-asdw,blabla
muss zu:
3213,2312.33,"Juhu","21.23-asdw","blabla"

werden (Hier soll ein SQL insert befehl entstehen).
Ist das mit einem Regulàren Ausdruck möglich (wenn ja wie)?



Warum Regexp?

Ich würde hier vermutlich zu split + regexp + join greifen.

Aber wenn ein SQL-INSERT entstehen soll, warum dann nicht
$sth = $dbh->prepare("INSERT INTO ... VALUES (?,?,?,?,?)")
gefolgt von einem $sth->execute(split /,/, $zeile)?

Bevor ich mich mit Anführungszeichen verheddere oder gar SQL-Injections
zulasse, verwende ich lieber ein "?" im prepare().

Was ist eigentlich, wenn ein Komma in einem deiner Strings vorkommt?

- Wolf

Ähnliche fragen