Myślę, że masz problem, ponieważ łączysz wywołania obiektowe i nie-OO z biblioteką MySQLi.
mysqli_error()
funkcja rzeczywiście wymaga parametru -- wymaga zmiennej połączenia; w twoim przypadku $conn
.
mysqli_error($conn)
Jednakże, gdybyś napisał to w sposób OO, jak to zrobiłeś w przypadku większości pozostałych wywołań bazy danych, napisałbyś to tak:
$conn->error
Ponieważ cała reszta kodu jest napisana przy użyciu wywołań obiektowych, sensowne byłoby użycie go również w tym wywołaniu.
Twój pełny wiersz kodu będzie wyglądał tak:
$result = $conn->query($sql) or die($conn->error);
Więcej przykładów znajdziesz w instrukcji PHP:http://php.net/manual /pl/mysqli.error.php
Mam nadzieję, że to pomoże.
Jeśli chodzi o Twoje pytanie dotyczące książki, z której korzystasz:nie mogę bezpośrednio komentować samej książki, ponieważ jej nie czytałem. Pamiętaj jednak, że istnieją dwie biblioteki MySQL dla PHP; starszy mysql
biblioteka i nowszy mysqli
biblioteka. Starsza biblioteka ma również funkcję mysql_error()
funkcja, która różni się od nowszej tym, że nie wymaga zmiennej łączącej. Jeśli w używanej książce jest błąd, może to być źródłem zamieszania.