Ik denk dat het probleem dat je hebt is omdat je objectgeoriënteerde en niet-OO-aanroepen naar de MySQLi-bibliotheek combineert.
De mysqli_error()
functie vereist inderdaad een parameter -- het vereist de verbindingsvariabele; in jouw geval, $conn
.
mysqli_error($conn)
Als je het echter op een OO-manier had geschreven, zoals je hebt gedaan voor de meeste andere database-aanroepen, zou je het als volgt hebben geschreven:
$conn->error
Aangezien de rest van uw code is geschreven met objectgeoriënteerde aanroepen, zou het logisch zijn om deze ook voor deze aanroep te gebruiken.
Uw volledige coderegel ziet er dus als volgt uit:
$result = $conn->query($sql) or die($conn->error);
U kunt meer voorbeelden zien in de PHP-handleiding:http://php.net/manual /en/mysqli.error.php
Ik hoop dat dat helpt.
Wat betreft je vraag over het boek dat je gebruikt:ik kan niet direct commentaar geven op het boek zelf omdat ik het niet heb gelezen. Maar merk op dat er twee MySQL-bibliotheken zijn voor PHP; de oudere mysql
bibliotheek, en de nieuwere mysqli
bibliotheek. De oudere bibliotheek heeft ook een mysql_error()
functie, die verschilt van de nieuwere doordat er geen verbindingsvariabele voor nodig is. Als er een fout staat in het boek dat u gebruikt, kan dit de oorzaak van de verwarring zijn.