Từ tài liệu MySQLi :
Vì vậy, về cơ bản, ngay cả khi truy vấn không trả về bất kỳ hàng nào, nó vẫn là một truy vấn thành công. Bạn nên kiểm tra số hàng được trả về. Thay đổi if
của bạn điều kiện để:
If ($result->num_rows) {
Chú thích bên lề:
- Bây giờ là thời điểm thích hợp để thực hiện các bước ban đầu chính xác trong việc làm việc với PHP-MySQL. Thay vì sử dụng hàm truy vấn, bạn nên sử dụng Câu lệnh chuẩn bị .
- Luôn sử dụng xử lý Ngoại lệ (
try-catch
), để bắt các lỗi khác trong quá trình thực thi truy vấn.
Đây là mã tương đương sử dụng các câu lệnh đã soạn sẵn và xử lý ngoại lệ:
try {
// Prepare the query
$stmt = "SELECT * FROM bank
WHERE name = ?
AND day = ?
AND time = ?";
// Bind the parameters
// assuming that your day and time are integer values
$stmt->bind_param("sii", 'jack', '1', '2');
// execute the query
$stmt->execute();
// Getting results:
$result = $stmt->get_result();
if ($result->num_rows === 0) {
echo "0 results";
} else {
echo "success";
// reading results
while($row = $result->fetch_assoc()) {
$name = $row['name'];
$day = $row['day'];
$time = $row['time'];
}
}
} catch (Exception $e) {
// your code to handle in case of exceptions here
// generally you log error details,
//and send out specific error message alerts
}