Thread Database Handle zerstört
(39 answers)
Opened by Escape at 2010-04-22 17:03 2010-04-22T15:48:39 Escape Das kann man kaum glauben (sei es, dass Du es immer (genau) so machst, bzw. dass es immer schon so funktioniert). Bei mir führt bereits ein einfaches Leerzeichen (\x20) vor der Datenbankangabe zur Fehlermeldung... Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 #! /usr/bin/perl use strict; use warnings; use DBI; my %dbargs = ( PrintError => 0, ); # mit Umbruch und Leerzeichen my $dsn1 = qq|DBI:mysql: database=pl_test: host=localhost: port=3306|; # mit nur 1 Leerzeichen (my $dsn2 = $dsn1 ) =~ s/\n[\t ]*/ /mg; # ohne Umbruch oder Leerzeichen (my $dsn3 = $dsn1 ) =~ s/\n[\t ]*//mg; # teste alle Varianten for my $dsn ( $dsn1, $dsn2, $dsn3 ) { print "--8<--\n$dsn\n--8<--\n"; if ( my $dbh = DBI->connect( $dsn, 'user', '', \%dbargs ) ) { if ( $dbh->do( q'SELECT * FROM foo' ) ) { print "do executed.\n"; } else { warn "do failed: ", $dbh->errstr, "\n"; } $dbh->disconnect; } else { warn "connect failed: ", DBI->errstr, "\n"; next; } } __END__ Resultat: Code: (dl
)
1 :!perl /tmp/t.pl Getestet auf Linux mit Perl 5.8.8; DBI 1.609; DBD::mysql 4.005 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! |