Ralf: MYSQL PROBLEME

Liebe Leute!

Ich kämpfe mit Perl und der Anbindung an einer Datenbank:

use strict;
use CGI::Carp qw(fatalsToBrowser);
use CGI;
use DBI;

#------------------------------------------------------
print "Content-type: text/html\n\n";
#------------------------------------------------------

my $DB_NAME = "test";
my $DB_DSN = "DBI:mysql:database=$DB_NAME";
my $DB_USER = "";
my $DB_PASSWD = "";

my $dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASSWD) or die "Fehler bei Datenbankverbindung: $!";

my @DB_Felder = $dbh->list_fields('produktdaten');
$dbh->disconnect;

Ich bekomme folgende Fehlermeldung:

Can't locate object method "list_fields" via package "DBI::db" at c:/apache/cgi-bin/test.cgi line 20.

Fehlt da ein Modul???

Gruss aus Berlin Ralf

  1. Hallo,

    Can't locate object method "list_fields" via package "DBI::db" at c:/apache/cgi-bin/test.cgi line 20.

    Fehlt da ein Modul???

    Woher hast Du die Information, dass ein DBI-Databasehandle eine Methode names 'list_fields' besitzt? Selbst in der Dokumentation der aktuellen Version von DBI (http://search.cpan.org/~timb/DBI-1.40/DBI.pm) kann ich auf die Schnelle nichts entdecken, dass darauf hindeutet, dass es so eine Methode gibt.

    Grüße
      Klaus

    1. Hier habe ich das her:

      http://selfhtml.teamone.de/cgiperl/sprache/cgitypisch.htm#dbfrontend

      Gruss Ralf

  2. Hola,
    also ich beschäftige mich auch erst seit kurzem mit Datenbanken, und dieses Beispiel hier funktioniert auf jeden Fall:

    #!/usr/bin/perl -w

    use DBI;
    use CGI::Carp qw(fatalsToBrowser);
    use strict;

    my $database = 'xxxxxxxx';
    my $dbserver = 'xxxxxx';
    my $user = 'xxxxxxxx';
    my $pass = 'xxxxxxx';

    my $dbh = DBI->connect("DBI:mysql:$database:$dbserver", $user, $pass, {AutoCommit => 0}) or die "Cant connect : $!\n";
    my $auslesen = $dbh->prepare("SELECT * FROM haupttabelle") or die "Cant auslesen : $!\n";

    $auslesen->execute;

    print "Content-type:text/html\n\n";
    while (my($vorname,$nachname) = $auslesen->fetchrow_array)    {
    print "$vorname $nachname <br>\n";
    }

    $auslesen->finish;
    $dbh->disconnect;

    Lies vielleicht nochmal in der Doku zum Modul nach, weil dieses list_fields habe ich vorher auch noch nie gelesen.
    (http://search.cpan.org/~timb/DBI-1.40/DBI.pm)

    Markus Trusk.