Така че по принцип, дори ако заявката не върне никакви редове, тя все още е успешна заявка. По-скоро трябва да проверите за броя на върнатите редове. Променете своя if
условие за:
If ($result->num_rows) {
Странична бележка:
- Сега е подходящият момент да предприемете правилни първоначални стъпки при работа с PHP-MySQL. Вместо да използвате функцията за заявка, трябва да използвате Подготвени изявления .
- Винаги използвайте обработка на изключения (
try-catch
), за улавяне на други грешки по време на изпълнение на заявката.
Ето еквивалентния код, използващ подготвени изрази и обработка на изключения:
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
}