SQL Einbettung in Perl mittels DBI
Tobias Weisserth
- datenbank
Hallo Ihr fleissigen und klugen Helferlein,
Folgende Frage:
Dies ist ein Beispiel aus der Einweisung in DBI von CPAN:
my $sth = $dbh->prepare('SELECT * FROM people WHERE lastname = ?')
Jetzt die Frage:
Kann ich 'SELECT * FROM people WHERE lastname = ?' durch eine String Variable ersetzen? Ich möchte das SQL Statement nämlich zur Laufzeit zusammenbauen und dann irgendwo abspeichern und danach auslesen (in einer String Variablen z.B.)
my $sth = $dbh->prepare('$string') oder so ähnlich. Geht das? Gibt es da unter Umständen Probleme (Performance, Sicherheit etc.)?
Ein blutiger Anfänger dankt Euch für Euren Expertenrat,
Gruß,
Tobias Weisserth
Hallo
Kann ich 'SELECT * FROM people WHERE lastname = ?' durch eine String Variable ersetzen? Ich möchte das SQL Statement nämlich zur Laufzeit zusammenbauen und dann irgendwo abspeichern und danach auslesen (in einer String Variablen z.B.)
Ja.
my $sth = $dbh->prepare('$string') oder so ähnlich. Geht das? Gibt es da unter Umständen Probleme (Performance, Sicherheit etc.)?
my $sth = $dbh->prepare($string);
ist richtig, dann gehts. In Gänsefußchen würde es auch ersetzt werden, in einfachen Hochkommas (') wird aber keine Varieblaninterpolation vorgenommen, so dass $string als String stehen bleibt.
Tschö Matti
Danke!
Gruß, Tobias
Hallo
Kann ich 'SELECT * FROM people WHERE lastname = ?' durch eine String Variable ersetzen? Ich möchte das SQL Statement nämlich zur Laufzeit zusammenbauen und dann irgendwo abspeichern und danach auslesen (in einer String Variablen z.B.)
Ja.
my $sth = $dbh->prepare('$string') oder so ähnlich. Geht das? Gibt es da unter Umständen Probleme (Performance, Sicherheit etc.)?
my $sth = $dbh->prepare($string);
ist richtig, dann gehts. In Gänsefußchen würde es auch ersetzt werden, in einfachen Hochkommas (') wird aber keine Varieblaninterpolation vorgenommen, so dass $string als String stehen bleibt.
Tschö Matti