Moderator |
|
Uit een foutmelding kun je vaak al een hoop informatie afleiden als je weet hoe je deze moet lezen.
In feite staat er: je roept functie blaat() aan met één argument (concreet: blaat($a)) terwijl er twee argumenten worden verwacht (concreet blaat($a, $b)). Dat is nagenoeg wat er letterlijk staat. Je roept de functie mysqli_query() dus op de verkeerde manier aan.
Bij de aanroep van de procedurele variant van de functie mysqli_query() dien je als eerste argument het connectie-object mee te geven. Dit in tegenstelling tot de voorganger mysql_query() (zonder i) die een optionele tweede parameter accepteerde. Deze was bedoeld voor de connectie-resource, maar als je deze niet expliciet opgaf werd verondersteld dat je gebruik wilde maken van de laatst gemaakte connectie via mysql_connect(). In MySQLi dien je expliciet aan te geven van welke connectie je gebruik wilt maken voor het uitvoeren van een query.
De definitie van mysqli_query() kun je altijd op php.net opzoeken en er is ook onlangs een (zeer) uitgebreide tutorial over MySQLi geschreven die je niet alleen vertelt wat de verschillen zijn tussen MySQL en MySQLi maar ook uitgebreid ingaat op het veilig omgaan met je database.
Als je je wilt bekwamen in MySQLi en net overgestapt bent vanaf de oude MySQL-driver (die hele zwik mysql_-functies) is het wellicht de moeite waard om die tutorial eens door te spitten. |