Likes Likes:  0
Resultaten 1 tot 4 van de 4
Geen
  1. #1
    Arjen Haayman
    [perl] fout in MySQL statement?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    [perl] fout in MySQL statement?

    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 --


  2. #2
    henq
    [perl] fout in MySQL statement?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] fout in MySQL statement?


    "Arjen Haayman" <ahaayman@deadspam.com> schreef in bericht
    news:c0i8tr$17q78u$1@ID-116065.news.uni-berlin.de...
    > 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 --
    >



    Ik zie zo gauw niets geks, maar een paar tips:
    - kijk met top welke proces veel CPU krijgt (httpd, mysqld, perl,..)
    - ik vind de redirect niet elegant. Waarom niet gewoon een antwoord pagina
    ge'print' ? Bovendien, een redirect van een POST is officieel niet
    toegestaan, dacht ik. Probeer 's zonder.
    - ik heb in het verleden wel eens problemen gehad met de placeholders '?' in
    de where-clause. (leek me bug in mysql). probeer eens met gewone
    substitutie: " where reservering_id = " . $this->{reservering_id}

    succes

    ~henq




  3. #3
    Arjen Haayman
    [perl] fout in MySQL statement?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] fout in MySQL statement?

    > Ik zie zo gauw niets geks, maar een paar tips:
    > - kijk met top welke proces veel CPU krijgt (httpd, mysqld, perl,..)

    Volgens mij is de server helemaal 'nergens' mee bezig.

    > - ik vind de redirect niet elegant. Waarom niet gewoon een antwoord pagina
    > ge'print' ? Bovendien, een redirect van een POST is officieel niet
    > toegestaan, dacht ik. Probeer 's zonder.



    > - ik heb in het verleden wel eens problemen gehad met de placeholders '?' in
    > de where-clause. (leek me bug in mysql). probeer eens met gewone
    > substitutie: " where reservering_id = " . $this->{reservering_id}

    Ga ik proberen.

    Ik heb gisteren nog een ander formulier gemaakt, die niets met MySQL
    doet, maar toch errug langzaam is. Het lijkt wel of elke POST traag
    is, terwijl de GET's snel zijn (ook op de database).

    Is er een manier om met de CGI-module aan te geven dat er geen output
    meer komt (zoals bij ASP Response.End() )

  4. #4
    Arjen Haayman
    [perl] fout in MySQL statement?
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: [perl] fout in MySQL statement?

    > Ik zie zo gauw niets geks, maar een paar tips:
    > - kijk met top welke proces veel CPU krijgt (httpd, mysqld, perl,..)

    Volgens mij is de server helemaal 'nergens' mee bezig.

    > - ik vind de redirect niet elegant. Waarom niet gewoon een antwoord pagina
    > ge'print' ? Bovendien, een redirect van een POST is officieel niet
    > toegestaan, dacht ik. Probeer 's zonder.



    > - ik heb in het verleden wel eens problemen gehad met de placeholders '?' in
    > de where-clause. (leek me bug in mysql). probeer eens met gewone
    > substitutie: " where reservering_id = " . $this->{reservering_id}

    Ga ik proberen.

    Ik heb gisteren nog een ander formulier gemaakt, die niets met MySQL
    doet, maar toch errug langzaam is. Het lijkt wel of elke POST traag
    is, terwijl de GET's snel zijn (ook op de database).

    Is er een manier om met de CGI-module aan te geven dat er geen output
    meer komt (zoals bij ASP Response.End() )

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics