Hallo,
Ik heb een probleem met een formulier dat er vreselijk lang over doet om
1 klein recordje in een MySQL database op te slaan (heb ik al eerder
over gepost).
Het is inmiddels verslechterd: het gebeurt regelmatig dat ik helemaal
geen respons meer krijg: als ik op de knop 'Opslaan' druk krijg ik
eerst een tijd een zandloper. Na een tijd verdwijnt deze, maar blijf ik
in het formulier en blijkt de wijziging helemaal niet te zijn
opgeslagen. Pas bij een tweede keer op 'Opslaan' drukken wordt de
wijziging opgeslagen.
Doe ik hier iets vreselijk fout of inefficient?
Ik heb hier wat delen van m'n code:
in 'reservering.pl' staat het volgende:
use CGI;
use Reservering;
my $query = new CGI;
sub opslaan()
{
my $reservering = new Reservering( $query);
my $error;
if( $error = $reservering->validatie())
{
[knip]
}
else
{
$reservering->opslaan();
print $query->redirect("?action=lijst");
}
}
in Reservering.pm:
sub opslaan()
{
my ($this) = @_;
my $reservering_id = $this->{reservering_id};
if( ! $reservering_id)
{
# nieuwe opvoeren
[knip]
}
else
{
my $sth = $dbh->prepare( "update reservering ".
"set naam=?,".
"email=?,".
"aantal=?,".
"voorstelling_id=?,".
"bevestigd=?".
" where reservering_id=?;"
) or die $dbh->errstr;
$sth->execute(
$this->{naam},
$this->{email},
$this->{aantal},
$this->{voorstelling_id},
$this->{bevestigd},
$this->{reservering_id}
) or die $sth->errstr;
$sth->finish();
}
}
--
Arjen Haayman
-- cogito ergo bicyclo --

Likes:
![[perl] fout in MySQL statement?](https://www.webhostingtalk.nl/images/WHT_rd/misc/dT.png)
Quote