Can't locate object method "param" via package "DBI::st"
|
Seitenanfang |
Hallo, ich habe folgendes PERL-Problem:Nach einer Datenbankabfrage erhalte ich im weiteren Skriptverlauf nach $xy = $query->param('xy'); die Fehlermeldung: Can't locate object method "param" via package "DBI::st" Die DBI-Abfrage: ... &dbverbinden; $query = $dbh->prepare('SELECT * FROM xy WHERE z = ?); $query->execute($string); &dbbeenden; &dbauslesen; foreach $datensatz (@ergebnis) { ... } #======Verbindung zur Datenbank herstellen====== sub dbverbinden { $dbh=DBI->connect('xxx'); } #======Datenbankeintraege in Array auslesen====== sub dbauslesen { while ( @abfrage = $query->fetchrow_array() ) { $abfragestring = join ';' ,@abfrage; push @ergebnis,$abfragestring; } } #========Datenbank-Verbindung beenden=========== sub dbbeenden { $query->finish(); $dbh->disconnect(); } #============================== ... Wo liegt mein Fehler ??? Gruß pfaelzer
Datum: 21.10.2008-00:08

|
re: Can't locate object method "param" via package "DBI::st"
|
Seitenanfang |
| Kann es sein, dass das in einem CGI-Skript passiert und Du einmal $query als Objekt von CGI und einmal für die Datenbankabfrage verwendest? Geh ich recht in der Annahme, dass Du kein "use strict" verwendest (siehe auch http://wiki.perl-community.de/bin/view/Wissensbasis/UseStrict )
Datum: 21.10.2008-08:43

|
re: Can't locate object method "param" via package "DBI::st"
|
Seitenanfang |
Genau, kein use strict, weil dann das Skript nicht mehr läuft ... und $query ist doppelt in Verwendung CGI und DB... das ist wohl nicht so gut, oder ??
Datum: 21.10.2008-23:23

|
re: Can't locate object method "param" via package "DBI::st"
|
Seitenanfang |
| Nein, Du solltest eine Variable immer nur für eine Sache verwenden. Zu "mein Skript läuft mit 'use strict' nicht mehr": Bitte lies Dir mal den Artikel durch, zu dem ich den Link gepostet habe.
Datum: 22.10.2008-16:17

|