Mailinglisten-Archive |
Hallo allerseits, ich benutze MySQL 3.22.21 auf suse linux 6.0. Als webserver läuft der Apache 1.34. Nun hab ich folgendes Problem: Ich hab eine Datenbank test angelegt, und darin die Tabelle adresse. Benutze ich nun ein CGI-script um Daten einzutragen bekomme ich als Fehlermeldung ein: DBD::mysql::st execute failed: ase Selected at /usr/local/httpd/cgi-bin/data.pl line 79. httpd: [Tue Jun 8 12:40:31 1999] [error] Kann die query nicht ausführen: ase Selected ase Selected soll wohl soviel heißen wie "no Database selected", aber das sollte eigentlich nicht passieren. In der shell läuft das Script einwandfrei. Weiß jemand wo der Fehler liegt? n´ Gruß, Hubert hier mal das Script (in auszügen): #!/usr/bin/perl -w use DBI; use CGI; # Jetzt den QUERY_STRING auswerten und in einen Hash ablegen # Um genau zu sein wird hier ein Handel ($query) auf einen Hash erzeugt $query=CGI::new(); # Ausgeben des http headers: print CGI::header(); print CGI::start_html(-title=>"data",-bgcolor=>"white"); ### # Datenbank Teil des Programms ### # Die verbindung zur Datenbank aufbauen # $db_verbind= DBI->connect(data_source, user,passwd $db_verbind= DBI->connect("DBI:mysql:test", "wwwrun", "geheim"); # Prüfen ob denn die Datenbank auch geöffnet wurde if ( !defined $db_verbind ) { die "Cannot do \$dbh-connect: $DBI::errstr\n"; } # Ausgeben, das alles korrekt verlief print "Verbindung mit der Datenbank war alles OK. Der Errorstring:<br>"; print $DBI::errstr,"<br>\n"; # Statement zusammenbauen aus den übergebenen Variablen: # vorher übergebene Variablen zwischenspeichern $name=$query->param("name"); $vorname=$query->param("vorname"); $adresse=$query->param("adresse"); $statement="insert into adresse values(\"".$name."\",\"".$vorname."\",\"".$adresse."\",curdate())\;"; print $statement,"<br>\n"; # Unsere Abfrage einleiten (vorbereiten um ein Handel für # diese Abfrage zu bekommen) $query_handel=$db_verbind->prepare($statement) or die "Kann das Statement nicht Vorbereiten: ",$db_verbind->errstr,"\n"; # Jetzt ein Handel auf das Ergebnis bekommen $ergebnis=$query_handel->execute or die "Kann die query nicht ausführen: ",$query_handel->errstr,"\n"; # Jetzt diese Query wieder Freigeben (keine weiteren fetch von # diesem Query) $ergebnis=$query_handel->finish; print "Das ergebnis:\n",$ergebnis,"\n"; # Wieder abmelden von der Datenbank und eventuelles results ausgeben $result=$db_verbind->disconnect; print $result, "\n"; ### # Wieder Html, diesmal den rest, der noch übrig bleibt ### CGI::end_html()
php::bar PHP Wiki - Listenarchive