Myslím, že problém, který máte, je ten, že kombinujete objektově orientovaná a non-OO volání do knihovny MySQLi.
mysqli_error()
funkce skutečně vyžaduje parametr -- vyžaduje proměnnou připojení; ve vašem případě $conn
.
mysqli_error($conn)
Pokud byste to však napsali OO způsobem, jako jste to udělali pro většinu zbývajících volání databáze, napsali byste to takto:
$conn->error
Vzhledem k tomu, že veškerý zbytek vašeho kódu je napsán pomocí objektově orientovaných volání, mělo by smysl jej použít i pro toto volání.
Váš úplný řádek kódu by tedy vypadal takto:
$result = $conn->query($sql) or die($conn->error);
Další příklady můžete vidět v manuálu PHP:http://php.net/manual /cs/mysqli.error.php
Doufám, že to pomůže.
Pokud jde o vaši otázku ohledně knihy, kterou používáte:nemohu se přímo vyjádřit ke knize samotné, protože jsem ji nečetl. Všimněte si ale, že pro PHP existují dvě MySQL knihovny; starší mysql
knihovna a novější mysqli
knihovna. Starší knihovna má také mysql_error()
funkce, která se od novější liší tím, že nevyžaduje spojovací proměnnou. Pokud je v knize, kterou používáte, chyba, může to být zdrojem nejasností.