[opgelost] foutmelding bij een UPDATE instructie.
Ik heb de volgende code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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();
// $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
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.
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.