Je pense que le problème que vous rencontrez est dû au fait que vous combinez des appels orientés objet et non OO vers la bibliothèque MySQLi.
Le mysqli_error()
la fonction nécessite en effet un paramètre - elle nécessite la variable de connexion ; dans votre cas, $conn
.
mysqli_error($conn)
Cependant, si vous l'aviez écrit d'une manière OO, comme vous l'avez fait pour la plupart des autres appels de base de données, vous l'auriez écrit comme ceci :
$conn->error
Étant donné que tout le reste de votre code est écrit à l'aide d'appels orientés objet, il serait logique de l'utiliser également pour cet appel.
Ainsi, votre ligne de code complète ressemblerait à ceci :
$result = $conn->query($sql) or die($conn->error);
Vous pouvez voir d'autres exemples dans le manuel PHP :http://php.net/manual /fr/mysqli.error.php
J'espère que ça aide.
En ce qui concerne votre question sur le livre que vous utilisez :je ne peux pas commenter directement le livre lui-même car je ne l'ai pas lu. Mais notez qu'il existe deux bibliothèques MySQL pour PHP; l'ancien mysql
bibliothèque, et le plus récent mysqli
bibliothèque. L'ancienne bibliothèque a également un mysql_error()
fonction, qui diffère de la plus récente en ce qu'elle ne nécessite pas de variable de connexion. S'il y a une erreur dans le livre que vous utilisez, cela peut être la source de la confusion.