Schrift
[thread]10570[/thread]

MySQL und Perl (Seite 2)

Leser: 3


<< |< 1 2 3 4 5 ... 8 >| >> 72 Einträge, 8 Seiten
H3llGhost
 2007-10-15 22:03
#100876 #100876
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Hmmm ...
Danke!

Wie sieht es mit dem Loggen von Ausgaben aus und so?
Gibt es dafür auch einen Parameter?
Linuxer
 2007-10-15 22:26
#100878 #100878
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
# ueberschreibe ausgabe.txt mit jedem aufruf
perl skriptname > ausgabe.txt

# haenge ausgabe hinten an
perl skriptname >> ausgabe.txt
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
H3llGhost
 2007-10-15 22:33
#100879 #100879
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Und unter Windows?! ... :-P
Linuxer
 2007-10-15 23:07
#100880 #100880
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
schon ausprobiert?

ansonsten:

http://www.winhelpline.info/daten/dos/redirection....
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
H3llGhost
 2007-10-16 00:16
#100883 #100883
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Ich habe ein Problem ...

Folgender Code:
Code (perl): (dl )
1
2
3
4
5
6
7
8
    my $result = &doQuery($query);
    my $hash_ref;
 
        # mit jedem Durchlauf gibt es eine neue Variable $hash_ref mit eigener Speicheradresse
        while ( my $hash_ref = $dbh->selectrow_hashref( $result ) ) {
        # $hash_ref nicht dereferenzieren, weil wir einen AoH aufbauen; perldoc perldsc
                $g_config_servers[ $hash_ref->{'serverID'} ] = $hash_ref;
        }


macht folgenden Fehler:
Can't call method "selectrow_hashref" on an undefined value at XXX.pl ...
Was bedeutet das?

EDIT:
Fehler gefunden:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    my $query = "
            SELECT
                    *
            FROM
                    hlstats_Servers
    ";
    my $result = &doQuery($query);
    my $hash_ref;
 
        # mit jedem Durchlauf gibt es eine neue Variable $hash_ref mit eigener Speicheradresse
        while ( my $hash_ref = $db_conn->selectrow_hashref( $result ) ) {
        # $hash_ref nicht dereferenzieren, weil wir einen AoH aufbauen; perldoc perldsc
                $g_config_servers[ $hash_ref->{'serverID'} ] = $hash_ref;
        }


Mein nächstes Problem ist aber, dass er eine Endlosschleife daraus macht ... :(

Er macht haufenweise nur HASH(0x435a6f4) und ähnliches ...
Was soll ich machen?!
Linuxer
 2007-10-16 00:33
#100885 #100885
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Grob geraten, würde ich behaupten, dass die DBI-Doku nicht ordentlich gelesen wurde ;o)

Konkret bedeutet die Fehlermeldung, dass versucht wurde, die Methode selectrow_hashref des Objekts in $dbh aufzurufen.
Da in $dbh nicht nur kein passendes Objekt, sondern gar nichts drin steht, fühlt sich Perl genötigt, Dir diese Meldung um die Ohren zu hauen.

Wie baust Du den DB-Zugriff auf? Wie sieht Dein Skript insgesammt aus?
Poste mal mehr Code des Skriptes, dann kann Dir besser geholfen werden, als dass wir aus den Bruchstücken was zusammenraten müssen ;)

Wildes Zusammenkopieren von Codefragmenten (so scheint es mir) wird Dir nicht weiterhelfen...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
H3llGhost
 2007-10-16 00:39
#100886 #100886
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Den Fehler habe ich ja nun gefunden, aber ich poste gerne den ebend auch noch:

Code (perl): (dl )
1
2
3
4
5
6
7
$db_conn = DBI->connect(
        "DBI:mysql:$db_name:$db_host",
        $db_user, $db_pass
) or die ("\nCan't connect to MySQL database '$db_name' on '$db_host'\n" .
        "Server error: $DBI::errstr\n");

&printEvent("MYSQL", "Connecting to MySQL database '$db_name' on '$db_host' as user '$db_user' ... connected ok", 1)


Und hier der doquery:

Code (perl): (dl )
1
2
3
4
5
6
7
8
sub doQuery
{
        my ($query, $callref) = @_;

        my $result = $db_conn->prepare($query) or die("Unable to prepare query:\n$query\n$DBI::errstr\n$callref");
        $result->execute or die("Unable to execute query:\n$query\n$DBI::errstr\n$callref");
        return $result;
}
Linuxer
 2007-10-16 00:49
#100888 #100888
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Also ist vermutlich $dbh durch $db_conn zu ersetzen ;)

[edit]Hab das EDIT des Fehlerposts erst hiernach gesehen ;o)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
H3llGhost
 2007-10-16 01:00
#100892 #100892
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Jepp genau aber nun macht der das Problem, dass es 1. eine Endlosschleife ist und 2. nur Sachen ausgeben wie HASH(0x435a6f4) und ähnlich ...

EDIT:
Kann es eigentlich sein, dass ich einen fetch-Befehl brauche?
Denn select kombiniert ja, prepare etc. ...
Linuxer
 2007-10-16 01:43
#100894 #100894
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Hi,

sein kein vieles; Es kann auch sein, dass ich viel raten muss, was Du tun willst...
Es kann auch sein, dass ich für Dich die Perldoc lesen muss ... ;o))

Wenn Du das DBI Modul einsetzen willst, solltest Du schon einigermassen verstehen, was das Modul und seine Funktionen so tun. Dazu wird es unablässig sein, dass Du mal die Doku liest.

perldoc DBI selectrow_hashref

perldoc DBI fetchrow_hashref

Nach der Doku kann es durchaus sein, dass Du ein fetch* brauchst...

edit: nicht bös sein, ob meiner antwort; aber ich gewinne grad eben den Eindruck, dass Du Dich nicht mit der Doku auseinander gesetzt hast... oder dort mal nachschaust und testest...
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
<< |< 1 2 3 4 5 ... 8 >| >> 72 Einträge, 8 Seiten



View all threads created 2007-10-14 17:05.