Wolfgang Wiese: 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.

$curser ist eine referenz auf einen Hash.
Du sprichst die Inhalte so an:
$curser->{'keyname'}

Wenn du alle Keys ausgeben   willst:

foreach $key (keys %{$curser}) {
  print "$key = $curser->{$key}\n";
}

Alternative, falls in diesen Hashwerten rekursiv weiter auf hashes verwiesen wird
ist mit der Abfrage ref() zu testen was es ist.

Noch besser:
Hol dir das Modul Data::Dumper
  
  my $cursor = $dblink->prepare("select * from user");
  use Data::Dumper;
  print Dumper($curser);

Ciao,
  Wolfgang