if (isset( $_POST["Submit"]) ){
$query="UPDATE tbl_aanvraag SET
aan_onderwerp = '".$_POST["aan_onderwerp"]."'
WHERE aan_aanvraagid=".$_POST["id"];
Kan iemand me vertellen wat hier fout aan is, heb query geëchoed en zou
fout gaan bij id. vanuit het overzicht wordt id doorgegeven aan de wijzigpagina en als ik vervolgens onderwerp wil updaten dan krijg ik de volgende fout:
UPDATE tbl_aanvraag SET aan_onderwerp = 'test' WHERE aan_aanvraagid=FOUT in query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
ik wist wel dat een integer niet tussen een string mag staan maar hoe post ik deze dan precies? WHERE aan_aanvraagid=" .$_POST["id"]; ik dacht echt dat hij zo moest zijn?
Zo zag jouw query er uit:
UPDATE tbl_aanvraag SET aan_onderwerp = 'test' WHERE aan_aanvraagid=
Er ontbrak dus gewoon een gegeven. Dat heeft niks met integers te maken.
Een integer hoort niet tussen quotes te staan, maar de meeste databases hebben er geen moeite mee wanneer je dat toch doet. Het kan zelfs de veiligheid wat verhogen omdat SQL-injection moeilijker wordt. Over SQL-injection geproken, jouw query is waarschijnlijk zo lek als een mandje. Of gebruik je op een andere plek de functie mysql_real_escape_string() ?
Ik maak altijd gebruik van quote's in query's. Ook voor het gebruik van een Variabele in een variablele.
$var = "var-waarde: ".$andere_var." en hier verder.";
Ook in syntax highligh werkt het prettig en opvallend.
Tevens maak je gebruik van een super_global, welke je volgens mij niet 'direct' in een 'normale' vairabele kan plakken.