Thread Can't locate object method... (4 answers)
Opened by pktm at 2003-10-21 21:54

pktm
 2003-10-21 21:54
#35619 #35619
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!
Also ich weis, dass ich mal mit einer Datenbank gearbeitet habe und dass ich auch mal einfache Statements ausführen konnte.
Nur finde ich die alten Scripten nicht wieder...
Jedenfalls will ich einfach nur zu meiner DB connecten.
Das ist eine MySQL-Datenbank und sie nennt sich Spiel.
Die andere Angabe da ist localhost.
Das würde ich gerne so machen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
require DBI; # laden des DBI-Moduls
my $db_user   = '';
my $db_passwd = '';
my $dsn = 'DBI:mysql:spiel:localhost';  # datasourcename:  wenn myserver weggelassen wird,
                            # wird standardmäßig localhost verwendet.
my $attributes = { PrintError => 0, RaiseError => 0, "AutoCommit" => 1, }; # siehe Doku zu DBI
my $dbh = DBI->connect($dsn, $db_user, $db_passwd, $attributes)
   #or main::writeDbhError($dbh, "Error in connecting to $dsn", die => 1);
   or main::writeDbhError("Error in connecting to $dsn", die => 1);
 # immer Returncodes und Fehler auswerten!!!

my $table = "spieler";
my $statement = "SELECT name, passwd from $table";
unless ($dbh->do($statement)) {
 main::writeDbhError($dbh, "Error in executing Sql-Statement:\n\t$statement");
}

my $hash_ref = $dbh->fetchrow_hashref;

$dbh->disconnect();


Require deshalb, weil ich das Modul nicht laden möchte, wenn ich es nicht brauche.
Es handelt sich nur um ein einfaches Login-Script.
Jedenfalls kommt jetzt immer der Fehler:
Quote
[Tue Oct 21 19:58:43 2003] login.cgi: Can't locate object method "fetchrow_hashref" via package "DBI::db" (perhaps you forgot to load "DBI::db"?) at login.cgi line 102.
[Tue Oct 21 19:58:43 2003] login.cgi: Database handle destroyed without explicit disconnect at login.cgi line 102.


Ja, letzteres verstehe ich auch nicht so ganz, denn 2 Zeilen drunter steht doch ausdrücklich, dass ich das Statement beende!?

So, Hilfe!
mfg pktm

PS: DBD::mySQL ist übrigens installiert, wie gesagt, ich hab mal vor langer langer Zeit damit gearbeitet...
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Can't locate object method...