Jag tror att problemet du har beror på att du kombinerar objektorienterade och icke-OO-anrop till MySQLi-biblioteket.
mysqli_error()
funktion kräver verkligen en parameter -- den kräver anslutningsvariabeln; i ditt fall, $conn
.
mysqli_error($conn)
Men om du hade skrivit det på ett OO-sätt, som du har gjort för de flesta andra databasanropen, skulle du ha skrivit det så här:
$conn->error
Eftersom resten av din kod är skriven med hjälp av objektorienterade anrop, vore det vettigt att använda den för detta anrop också.
Så din fullständiga kodrad skulle se ut så här:
$result = $conn->query($sql) or die($conn->error);
Du kan se ytterligare exempel i PHP-manualen:http://php.net/manual /en/mysqli.error.php
Hoppas det hjälper.
När det gäller din fråga om boken du använder:Jag kan inte kommentera själva boken direkt eftersom jag inte har läst den. Men observera att det finns två MySQL-bibliotek för PHP; den äldre mysql
biblioteket och den nyare mysqli
bibliotek. Det äldre biblioteket har också en mysql_error()
funktion, som skiljer sig från den nyare genom att den inte kräver en anslutningsvariabel. Om det finns ett fel i boken du använder kan detta vara källan till förvirringen.