Mailinglisten-Archive |
Das CGI Modul in Perl geht so:
# Modul aufrufen
use CGI;
# neues Objekt anlegen
$q = new CGI;
# Parameter auslesen
my $anbieter_id = $q->param(anbieter_id);
# oder wenn Du alle Parameter in ein hash %Parameter packen willst
foreach $c ($q->param) {$Parameter{$c}=$q->param($c)}
# Im uebrigen scheinen mir die Anfuehrungszeichen nicht ganz koscher zu sein
# Wenn Du Werte an sub qq übergibst , dann mußt Du die in Tuetteln setzen
# Wenn Du aber in Perl Variablen in 'einfache Tuetteln' setzt, werden sie
buchstaeblich aufgefaßt.
# bei
$asdf = 'lalala';
print '$asdf'
## kommt $asdf raus, und nicht "lalala"
#Vielleicht geht es ja so:
my $query = qq("INSERT INTO angebote
(anbieter_id,art,standort,jahr,quadrat,immer,extras,preisangabe)
VALUES
(\"$anbieter_id\",\"$art\",\"$standort\",\"$jahr\",\"$quadrat\",\"$immer\",\
"$extras\",\"$preisangabe\")");
# Und wenn du qq() nicht brauchst dann so
my $query = "INSERT INTO angebote
(anbieter_id,art,standort,jahr,quadrat,immer,extras,preisangabe)
VALUES
(\"$anbieter_id\",\"$art\",\"$standort\",\"$jahr\",\"$quadrat\",\"$immer\",\
"$extras\",\"$preisangabe\")";
# mfg Thies
Gloss Mathias schrieb: ÒAW: Perl/mySQL - INSERT INTO - Es klappt nicht...Ó.
[2000/09/20 17:02]
> Aloha,
>
> > ----------
> > Von: Portal Internet GmbH[SMTP:th.barth_(at)_portal.de]
> >
> > ich finde einfach den Fehler in dem folgenden Script nicht. Ich bekom
> me
> > wieder eine Server Fehler Meldung.
> >
> > use CGI qw(:standard);
> >
> Ich kenn ja das Modul CGI nur vom Namen her, weil mir das zu maechtig
> ist um Uebergabevariablen zu extrahieren....
>
> > my ($anbieter_id) = (param('anbieter_id'));
> >
> Aber ich denke, hier ist der Hund begraben. Das ist auf jeden Fall
> kein gültiges Perl-Konstrukt. Ich VERMUTE, dass das Modul
> CGI die Uebergabeparameter als Hash zurueckgibt. Dann muesste
> das heissen :
>
> my $anbieter_id = $param{'anbieter_id'};
> (die erste Klammer nach my ist uebrigens ueberfluessig)
>
> Zum Test, ob alle uebertragene Variablen richtig ankommen wuerde ich
> folgendes
>
> > my ($sth) = $dbh->prepare (qq{
> > INSERT INTO angebote
> > (anbieter_id,art,standort,jahr,quadrat,immer,extras,preisangabe)
> > VALUES
> > ('$anbieter_id','$art','$standort','$jahr','$quadrat','$immer','$extr
> as','
> > $p
> > reisangabe')});
> >
> mit folgendem ersetzen:
>
> my $query = qq( INSERT INTO angebote
> (anbieter_id,art,standort,jahr,quadrat,immer,extras,preisangabe)
> VALUES
> ('$anbieter_id','$art','$standort','$jahr','$quadrat','$immer','$extras
> ',
> '$preisangabe');
> (Soweit mir duenkt, muss man nach qq eine runde Klammer setzen ...)
> dann
> print "QUERY: $query<br>\n";
> und ausfuehern
> my $sth = $dbh->prepare($query);
> $sth->execute;
>
> Wenn bei query schon nix gescheites rauskommt, fehlten die uebergebenen
> Werte.
> Wenn immer noch Server Error kommt, hast du noch ein paar Fehler in dem
> Script,
> die ich nicht auf anhieb gefunden habe ;)
>
> Gruesse, Mathias
>
>
> ---
> *** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql
>
-----------------------------------------
Thies Lindenthal
www.schule-im-Netz.de
Tel: 04846-69189 mobil: 0177-6112357
thies_(at)_schule-im-netz.de
---
*** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive