[opgelost] foutmelding bij een UPDATE instructie.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frits van Leeuwen

Frits van Leeuwen

22/04/2018 23:03:08
Quote Anchor link
Hallo allemaal,

Ik heb de volgende code
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
    // $journaalpost_id bevat het id dat wordt verwijderd.
    // $journaalpostnummer bevat het journaalpost nummer dat wordt verwijderd.
    $query_delete_journaalpost = "DELETE FROM tabel_journaalposten WHERE journaalposten_id=?";
    $stmt_delete_journaalpost = $dbh->prepare($query_delete_journaalpost);
    $stmt_delete_journaalpost->bind_param("i", $journaalpost_id);
    $stmt_delete_journaalpost->execute();
    // Herstel de journaalpost nummers die hoger zijn dan die verwijderd is.
    $query_update_journaalpost = "UPDATE FROM tabel_journaalposten SET journaalposten_nummer=journaalposten_nummer-1 WHERE journaalposten_administratie=? AND journaalposten_datum=? AND journaalposten_nummer>?";
    $stmt_update_journaalpost = $dbh->prepare($query_update_journaalpost);
    $stmt_update_journaalpost->bind_param("isi", $adm_id, $datum1, $journaalpostnummer);
    $stmt_update_journaalpost->execute();


Het begint met het verwijderen van een record. Dat gaat goed. Zonder foutmelding.
Dan is het de bedoeling het journaalpostnummer met 1 verlaagd wordt als het record:
- tot de zelfde administratie behoort,
- de zelfde datum heeft
- en een hoger journaalpostnummer.

Maar ik krijg de volgende melding:
Call to a member function bind_param() on boolean

Ik lijk alles wel goed te hebben staan, maar er klopt toch iets niet. Wie heeft er een tip voor mij om dit te kunnen oplossen?

Alvast bedankt.
Gewijzigd op 22/04/2018 23:23:14 door Frits van Leeuwen
 
PHP hulp

PHP hulp

19/04/2024 13:47:44
 
Thomas van den Heuvel

Thomas van den Heuvel

22/04/2018 23:09:00
Quote Anchor link
Syntax van de UPDATE-query is mogelijk niet goed? Hier hoort geen FROM in thuis.

Ik zou je ook aanraden om dit soort queries te bundelen in transacties zodat deze in het geheel, of in het geheel niet worden uitgevoerd.

Ook zou je kunnen overwegen om in plaats van items echt te verwijderen deze een status "deleted" te geven, en deze bij het "verwijderen" op 1 te zetten. Zul je wel al je queries bij moeten werken (WHERE ... deleted = 0) maar als je dan per ongeluk een item delete dan hoef je die niet uit een backup terug te halen.

Overigens, bouw wat foutafhandeling in en/of zet het melden+weergeven van fouten aan in de ontwikkelomgeving, of bekijk errorlogs, dan vind je dit soort oorzaken vrijwel direct.
 
Frits van Leeuwen

Frits van Leeuwen

22/04/2018 23:22:35
Quote Anchor link
Wow Thomas van den Heuvel,

Dat is snel een antwoord!. Maar was inderdaad niet zo handig om de FROM er in te laten. Ik krijg nu gelijk andere foutmeldingen. Maar die hebben te maken met een ander stukje code

Bedankt voor het snelle en uitgebreide antwoord.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.