Tôi nghĩ rằng vấn đề bạn đang gặp phải là do bạn đang kết hợp các lệnh gọi hướng đối tượng và không phải OO vào thư viện MySQLi.
mysqli_error()
hàm thực sự yêu cầu một tham số - nó yêu cầu biến kết nối; trong trường hợp của bạn, $conn
.
mysqli_error($conn)
Xin chào, nếu bạn viết nó theo cách OO, như bạn đã làm cho hầu hết các lệnh gọi cơ sở dữ liệu còn lại, bạn sẽ viết nó như thế này:
$conn->error
Vì tất cả phần còn lại của mã của bạn được viết bằng cách sử dụng lệnh gọi hướng đối tượng, nên bạn cũng nên sử dụng nó cho lệnh gọi này.
Vì vậy, dòng mã đầy đủ của bạn sẽ giống như sau:
$result = $conn->query($sql) or die($conn->error);
Bạn có thể xem thêm các ví dụ trong hướng dẫn sử dụng PHP: http://php.net/manual /en/mysqli.error.php
Hy vọng điều đó sẽ hữu ích.
Đối với câu hỏi của bạn về cuốn sách bạn đang sử dụng:Tôi không thể bình luận trực tiếp về cuốn sách vì tôi chưa đọc nó. Nhưng lưu ý rằng có hai thư viện MySQL cho PHP; mysql
cũ hơn thư viện và mysqli
mới hơn thư viện. Thư viện cũ hơn cũng có mysql_error()
, khác với hàm mới hơn ở chỗ nó không yêu cầu biến kết nối. Nếu có lỗi trong cuốn sách bạn đang sử dụng, đây có thể là nguồn gốc của sự nhầm lẫn.