Hallo!
Es geht um das Modul DBI.
Die Dokumentation habe ich gelesen,
und so gut bzw. so schlecht mein englisch auch ist,
verstand ich teils mehr, teils weniger.
Jedenfalls blieben einige Sachen unklar für mich:
1) Ist es $dbh->errstr; oder $sth->errstr; ?
Beispiel:
==========
my $dbh = DBI->connect('DBI:mysql:database=foobar;host=localhost', '', '');
my $sth = $dbh->prepare("INSERT INTO customers VALUES (?, ?)");
$sth->execute('',"Aqua");
==================
$dbh connectet ja die Datenbank,
$sth wird dann $dbh->prepare zugewiesen,
also irgendwie bleibt es in $dbh,
irgendwie geht es nach $sth,
und zum schluss gibt es ein $sth->execute.
In der perldoc DBI bzw. der Modulbeschreibung von DBI.pm
fand ich beides, sowohl
$sth->errstr; als auch $dbh->errstr;
Es ist mir unklar welches ich wann wie warum brauche....
wenn ich bei obigem Script $dbh->errstr; drunterschreibe,
steht dann da nur der Fehler aus dem "connect" drinnen?
Oder auch der andere?
Wenn ich einen doppelten Eintrag habe in der Tabelle
in einer UNIQUE Spalte bei obigem Script bekomme
ich sowohl bei $dbh->errstr; als auch bei $sth->errstr;
den fehler retour.
Was aber wenn ich bei PREPARE schon einen Error bekomme,
und es zu execute gar nicht mehr kommt,
dann ist der error in DBH oder?
Aber was ist dann $sth->execute?
das macht ja mehr sinn wenn der fehler im Execute kommt
weil dann ist es ja schon in $sth ?
Irgendwo sollte ja ein Objekt retour gegeben werden?
was hilft mir das eigentlich zu wissen?
Bitte helft mir,
ich blicke mich da nicht mehr durch, bitte =(
Aqua ...
Danke