Hallo allemaal,

Onderstaande code gebruik ik om de waarde van een kolom bij te werken naar het getal 2, nadat een gebruiker op de verzendknop heeft gedrukt.
En, helaas werkt het niet en ik krijg allemaal foutmelding.
De foutmelding zijn o.a.:

med_expire.php' on line 111: mysqli_affected_rows() expects parameter 1 to be mysqli, null given



Bizar genoeg, wanneer ik binnen PHPMyAdmin de query "UPDATE medicines SET verwijderd = 2 WHERE ID = 55; uitvoer, dan werkt het wel.


$query = "UPDATE medicines SET verwijderd = 2 WHERE id={$_POST['id']}";
En wat zegt de foutafhandeling?
Query uitvoeren.
Foutafhandeling checken.
En ik zie meteen een SQL-injection.

Ikzelf gebruik MySQLi-OO en heb een extended class gemaakt die de query() overschrijft mét foutafhandeling erbij.

Misschien een tipje als niet steeds systematisch foutafhandeling erbij wilt schrijven.
Hallo - SanThe -,

Via foutafhandeling krijg ik o.a bovenstaande foutmelding en:

Undefined variable: dbc

En de DBC variabel klopt wel, maar eerder werkt het wel in het script.
Via de dump krijg ik:

[query] => UPDATE medicines SET verwijderd = 2 WHERE id=55
[r] =>
Maar ook hierin zie ik geen foutmelding eigenlijk...En de kolomnamen kloppen reeds wel, want in PHPMyAdmin werkt deze query wel en zonder problemen.

@- Ariën -,

Zie je een SQL injectie bij where id? Dit heb ik net ook ontdekt, nadat ik eerst op het net ging zoeken voor 'n oplossing voor mijn probleem. En jah ik programmeer in procedure, want ik ben nog niet toe aan OOP. Ooit wil ik wel overgaan, maar eerst de applicatie moet af zijn.. ;-)
mysqli_affected_rows() expects parameter 1 to be mysqli, null given

Je parameter mist, en dat is de connectie-identifier.
En waar is $dbc voor? Is dat heel toevallig je databaseverbinding? Dan ben ik niet erg verbaasd dat het niet zou werken. Maar pas eens correcte foutafhandeling toe, zoals je in zoveel eerdere topics ook al verteld is.
Hallo Ben,

Ja de $dbc is voor de verbinding naar mysql-database.
En kun je dan verklaren waarom de $dbc eerder wel werkte in het script?
Indien nodig kan ik hier het hele script laten zien?
En jah ik pas ook de correcte foutafhandeling, want ik krijg elke keer een mail wanneer iets fout gaat plus dump van het script..
Gebruik je geen eigen functie, waarin je $dbc opeens niet meer werkt?
Nee, maar zou het kunnen zijn dat $dbc niet meer werkt, nadat ik PHP script heb afgebroken en later weer open?
Nee, want dan zou je tussentijd ook geen variabelen kunnen gebruiken, in losse PHP-blokken.

unset() je die waarde gewoon niet? Of overschrijf je het ergens met een lege waarde?

Reageren