klaus: DBI::st=HASH(0xd18dc)

Beitrag lesen

Hallihallo,

die DBI Funktionen prepare() und execute geben mir so ein Ding zurück.

Also z.B. $cursor = $dblink->prepare("select * from user");

dann ist $cursor = DBI::st=HASH(0xd18dc), wenn ich $cursor einfach mit print ausgebe.

Gibt es eine Möglichkeit so ein Ding aufzulösen und eine klare Information zu erhalten, wie z.B. wie viele rows meine SQL Abfrage zurückliefert?

Und was sind diese "Dinger" eigentlich ganz genau? Ich weiß, daß man solche Teile erhält, wenn man z.B. eine Referenz zu einem Array ausgibt...aber das hier ist noch ein bisschen anders.

Vielen Dank
Cruz

gruesse,
also, was Du von prepare() zurueckbekommst ist ein sogenanntes statement-handle,
waehrend $dblink ein sog. database-handle ist.
sicherlich, es ist eine referenz auf ein hash, oder auch eine objekt-instanz oder was auch immer, je nach betrachtungsweise.
aber wen interessierts!!
normalerweise solltes Du nicht auf die werte dieses hashs direkt zugreifen muessen. dafuer gibt es funktionen, welche durch DBI
und dem Datenbank-Modul (DBD::xxx) bereitgestellt werden.
wie ich dem text entnehme, willst Du eigentlich die anzahl der datensaetze wissen, welches dieses statement
zurueckliefern wird. spielts nicht, oder nicht immer, auf jeden fall nicht ohne execute().
Informationen ueber die Daten, wie Spaltennamen, Datentypen und rowcount usw., bekommt man nicht immer
geliefert, das ist vom DBD-modul abhaengig.
bitte aufmerksam die doku von DBI und dem entsprechenden DBD-modul lesen.
sonst hilft nur noch 'Programming the Perl DBI' aus dem Hause O'Reilley.

viel spass noch
klaus