Jeg tror, at problemet du har, er fordi du kombinerer objektorienterede og ikke-OO-kald til MySQLi-biblioteket.
mysqli_error()
funktion kræver faktisk en parameter -- den kræver forbindelsesvariablen; i dit tilfælde, $conn
.
mysqli_error($conn)
Men hvis du havde skrevet det på en OO-måde, som du har gjort for de fleste af resten af databasekaldene, ville du have skrevet det sådan her:
$conn->error
Da al resten af din kode er skrevet ved hjælp af objektorienterede opkald, ville det også give mening at bruge det til dette opkald.
Så din fulde kodelinje ville se sådan ud:
$result = $conn->query($sql) or die($conn->error);
Du kan se yderligere eksempler i PHP-manualen:http://php.net/manual /da/mysqli.error.php
Håber det hjælper.
Med hensyn til dit spørgsmål om bogen du bruger:Jeg kan ikke kommentere direkte på selve bogen, da jeg ikke har læst den. Men bemærk, at der er to MySQL-biblioteker til PHP; den ældre mysql
bibliotek, og den nyere mysqli
bibliotek. Det ældre bibliotek har også en mysql_error()
funktion, som adskiller sig fra den nyere ved, at den ikke kræver en forbindelsesvariabel. Hvis der er en fejl i den bog, du bruger, kan dette være kilden til forvirringen.