Mailinglisten-Archive |
Hi, Hubert Krause <hubert_(at)_vamax.de> schrieb mir: > Wolfgang Lendl wrote: > > Tommy wrote: > > > Beim cgi-script bekomme ich immer die Meldung : ase Selected. (Das sagt mir > > > bei meinem jetzigen Wissenstand leider nicht viel) > > > > sieht aus wie "No Database Selected" > > Und was bedeutet das genau (siehe meine Anfrage: Perlscript DBI Fehler > [no Datab?]ase Selected. Geht in shell, nicht per web)? Kann mal jemand > ein funktionierendes CGI-script hier Posten, das einen insert macht?? > > Ich weiß leider nicht was ich falsch mache. Aber sicher doch. Die Routine 'create_profile' ermittelt zunächst alle Spaltennamen der Tabelle und setzt mittels Platzhaltern für jede Spalte die Werte ein, die in den param-Variablen gespeichert sind und vom Formular übergeben wurden. Wenn der Wert leer ist, wird nichts eingesetzt, wenn das Feld das Attribut 'NOT NULL' hat, geht es nicht, der Server liefert eine Fehlermeldung. Grüße, Thomas <--- snip ---> sub create_profile { my $dbase = 'database'; my $dbuser = 'user'; my $dbpass = 'geheim'; my $dbhost = 'host'; my $dbtable = 'table'; my $dbh = &connect($dbase,$dbuser,$dbpass,$dbhost,$dbtable); my _(at)_COLUMNS = get_columns($dbh,$dbtable); my %param = map(($_ => param $_), param); $statement = 'INSERT INTO ' . $dbtable . '(' . join(', ', _(at)_COLUMNS) . ') VALUES (' . join(', ', ('?')x_(at)_COLUMNS) . ');'; $dbh->do($statement, undef, _(at)_param{_(at)_COLUMNS}) or die "Couldn't insert: ", $dbh->errstr, "\n"; disconnect($dbh); } sub connect { my ($dbase, $dbuser, $dbpass, $dbhost, $dbtable) = _(at)__; DBI->connect("DBI:mysql:database=$dbase", $dbuser, $dbpass ) or die "Cannot connect to database", $DBI::errstr } sub disconnect { shift->disconnect } sub get_columns { my ($dbh, $dbtable) = _(at)__; my $COLUMNS = $dbh->selectall_arrayref("show columns from " . $dbtable) or die "Fehler beim Ermitteln der Spaltennamen\n", $dbh->errstr; map $_->[$[], _(at)_$COLUMNS; } <--- snap ---> -- Thomas Gericke * noris network GmbH * Tel.: (09 11) 93 52-0 info_(at)_noris.de * Ihr Internet-Provider in Nuernberg * Fax: 93 52-1 00
php::bar PHP Wiki - Listenarchive