Tất cả các hàm / phương thức mysqli có thể bị lỗi trong trường hợp đó chúng sẽ trả về false. I E. nếu chuẩn bị () không thành công thì $ stmt không phải là một đối tượng mà bạn có thể gọi một phương thức trên đó ngoại trừ một bool (false). Bạn phải kiểm tra các giá trị trả về và thêm một số xử lý lỗi, ví dụ:
$stmt = $mysqli->prepare('SELECT name FROM `rooms` WHERE r_id=?');
if ( !$stmt ) {
printf('errno: %d, error: %s', $mysqli->errno, $mysqli->error);
die;
}
$b = $stmt->bind_param('i', $roomID);
if ( !$b ) {
printf('errno: %d, error: %s', $stmt->errno, $stmt->error);
}
$b = $stmt->execute();
if ( !$b ) {
and so on and on
xem http://docs.php.net/mysqli-stmt.errno et al
trong trường hợp này, bạn có thể gặp phải sự cố rằng bạn không thể tạo một câu lệnh khác trong khi vẫn còn kết quả / tập hợp kết quả đang chờ xử lý cho câu lệnh trước đó.
xem http://docs.php.net/mysqli-stmt.close
: