Saya rasa masalah yang Anda alami adalah karena Anda menggabungkan panggilan berorientasi objek dan non-OO ke perpustakaan MySQLi.
mysqli_error()
fungsi memang membutuhkan parameter -- ini membutuhkan variabel koneksi; dalam kasus Anda, $conn
.
mysqli_error($conn)
Namun, jika Anda menulisnya dengan cara OO, seperti yang telah Anda lakukan untuk sebagian besar panggilan database lainnya, Anda akan menulisnya seperti ini:
$conn->error
Karena semua sisa kode Anda ditulis menggunakan panggilan berorientasi objek, masuk akal untuk menggunakannya juga untuk panggilan ini.
Jadi baris kode lengkap Anda akan terlihat seperti ini:
$result = $conn->query($sql) or die($conn->error);
Anda dapat melihat contoh lebih lanjut di manual PHP:http://php.net/manual /en/mysqli.error.php
Semoga membantu.
Sehubungan dengan pertanyaan Anda tentang buku yang Anda gunakan:Saya tidak dapat berkomentar langsung tentang buku itu sendiri karena saya belum membacanya. Tetapi perhatikan bahwa ada dua perpustakaan MySQL untuk PHP; mysql
yang lama perpustakaan, dan mysqli
yang lebih baru Perpustakaan. Pustaka yang lebih lama juga memiliki mysql_error()
fungsi, yang berbeda dari yang lebih baru karena tidak memerlukan variabel koneksi. Jika ada kesalahan dalam buku yang Anda gunakan, ini mungkin sumber kebingungannya.