Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11352[/thread]

mysql db Fehler



<< >> 3 Einträge, 1 Seite
steffi42
 2008-02-24 11:58
#106310 #106310
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
Guten morgen zusammen,

versuche mich an einem Login Script und bekommen sowohl bei use dbi; als auch bei use mysql; Fehler

bei dieserer Variante
Code: (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
#!/usr/bin/perl -wT 
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use DBI;
my $query = new CGI;
use strict;

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

print <<BodyHTML;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>LoTy Login Check</title>
</head>
BodyHTML

my $dbh = DBI->connect('DBI:mysql:db123:mysql3.123.de','123','345', { RaiseError => 1});

my $Benutzername=param('Benutzername');
my $Passwort=param('Passwort');

my $sth = $dbh->prepare(qq{SELECT ID FROM Spieler WHERE Benutzername='?' AND Passwort='?'});
$sth->execute($Benutzername,$Passwort);

my @Ergebnis= $sth->fetchrow_array();
if (@Ergebnis) {
print "Das Ergebnis lautet $Ergebnis[0]<br />";
}
else {
print"Falsches Passwort $Ergebnis[0]";
}
$sth->finsih();
$dbh->disconnect();
print end_html();

erhalte ich den Fehler:
DBD::mysql::st execute failed: called with 2 bind variables when 0 are needed at login.cgi line 24.

bei der anderen Variante

Code: (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
#!/usr/bin/perl -wT 
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use Mysql;
my $query = new CGI;
use strict;

my $host = 'mysql3.123.de';
my $database = 'db123';
my $tablename = 'Spieler';
my $user = '123';
my $pw = '345';
my $Benutzername=param('Benutzername');
my $Passwort=param('Passwort');

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

print <<BodyHTML;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>LoTy Login Check</title>
</head>
BodyHTML


my $connect = Mysql->connect($host, $database, $user, $pw);
$connect->selectdb($database);

my $myquery = "SELECT ID FROM $tablename WHERE Benutzername = $Benutzername AND Passwort = $Passwort";
my $execute = $connect->query($myquery);

my @Ergebnis = $execute->fetchrow();

print"das Ergebnis lautet $Ergebnis[0]";
print end_html();

Spuckt er mir folgendes aus:
Can't call method "fetchrow" on an undefined value at login.cgi line 33.

Wenn ich den Query in myphpadmin ausführe erhalte ich (wenn ich die ? durch Werte ersetze) ein Ergebnis, also kann es nicht an der Tabelle liegen.

Danke für eure Hilfe im Voraus.
renee
 2008-02-24 12:04
#106311 #106311
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mache bei der erste Variante aus
Code: (dl )
my $sth = $dbh->prepare(qq{SELECT ID FROM Spieler WHERE Benutzername='?' AND Passwort='?'});
mal
Code: (dl )
my $sth = $dbh->prepare(qq{SELECT ID FROM Spieler WHERE Benutzername=? AND Passwort=?});


Sonst fragst Du ab, wo der Benutzername ? ist und das Passwort auch ?...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffi42
 2008-02-24 15:04
#106312 #106312
User since
2007-11-11
8 Artikel
BenutzerIn
[default_avatar]
das hat super geklappt, vielen Dank
<< >> 3 Einträge, 1 Seite



View all threads created 2008-02-24 11:58.