Daniel Thoma: DBI do-> syntax, \%attr und @bind_values

Beitrag lesen

Hallo *Aslinda*,

Hast du ein beispiel zur Hand wie das ausschaut?

$dbh->selectall_arrayref("SELECT * FROM bla", {MaxRows=>10});
Das würde z.B. maximal 10 Zeilen holen.

DBI->connect($data_source, $username, $auth, {RaiseErrors=>1})
Dadurch würde mit die() ein Fehler geworfen. Das verwende ich z.B. ganz gern .
Es gibt jede Menge solcher Parameter, da kommst Du aber an der Doku nicht vorbei.

Also so:
DELETE FROM table WHERE pname LIKE 'B%' OR pname LIKE 'A_l_nd%' OR schule=wien;
Wie sieht das mit DBI aus?

$dbh->do("DELETE FROM table WHERE pname LIKE ? OR pname LIKE ? OR schule", undef, "B%", "A_1_nd%", "wien");

Bei festen Werten wie in diesem Fall ist das nicht wirklich sinnvoll. Sinnvoll ist es, wenn Du stattdessen Variablen verwenden willst. Also z.B:

$dbh->do("DELETE FROM table WHERE schule=?", undef, $wert);

muss man da [] setzen?

Nein, da würdest Du eine Arrayreferenz übergeben.
Als bind values werden aber einfach alle Argumente nach den ersten beiden genommen.

Grüße

Daniel