malte: mysql abfrage best. spalten

Hallo,

über DBI greife ich auf eine MySQL Datenbank bzw. Tabelle zu.

$HOSTS_cells=$dbh->prepare("SELECT*FROM HOSTS");
$HOSTS_cells->execute();
while(@inhalt=$HOSTS_cells->fetchrow_array()) {
  print @inhalt[X];
}

Nun möchte ich aber nicht abzählen, welches X bei @inhalt[X] reinkommt, damit ich eine spzeielle Spalte ausgebe. Ich möchte am liebsten sowas wie @inhalt['spaltenname']. Die Alternativlösung, die mir bisher eingefallen ist/die ich gefunden habe: SELECT spaltenname FROM HOSTS. aber dafür müsst ich ja für jeden schei* ne neue mysql query schreiben.

habt ihr da so spontan ne funktion ausm DBI parat, die das realisieren kann? habe auf cpan nix gefunden (komm mit der seite zugegebenermaßen auch (noch) nicht richtig klar:-( ).

vielen dank,
malte

  1. Hallo malte,

    Das DBI-Modul ist unter CPAN genau beschrieben:
    http://search.cpan.org/~timb/DBI-1.48/DBI.pm

    Versuch es mal so:
    my $cells  = $DBH->selectrow_hashref( 'SELECT * FROM hosts' );
    print $cells->{'spaltenname'};

    Herzliche Grüße aus Weinsberg
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
    1. Hallo malte,

      Das DBI-Modul ist unter CPAN genau beschrieben:
      http://search.cpan.org/~timb/DBI-1.48/DBI.pm

      Versuch es mal so:
      my $cells  = $DBH->selectrow_hashref( 'SELECT * FROM hosts' );
      print $cells->{'spaltenname'};

      Herzlichen Dank!

      $dbh=DBI->connect($dsn,$user,$pswd,{RaiseError=>1});
      $hash_ref = $dbh->selectrow_hashref("SELECT * FROM HOSTS");
      $string = $hash_ref->{"spalten_name"};
      print $string;

      funktioniert einwandfrei!

  2. Hallo malte,

    $HOSTS_cells=$dbh->prepare("SELECT*FROM HOSTS");

    http://www.php-faq.de/q/q-sql-select.html gilt auch für Perl ...

    Grüße aus Nürnberg
    Tobias