Вам нужно закрыть инструкции mysqli?
Задача
Я пытаюсь подсчитать, есть ли регистрация с тем же номером телефона и датой. Это делается для того, чтобы люди не регистрировали две оговорки в одну и ту же дату (время). Моя проблема в том, что я ожидаю, что запрос вернет
0
, потому что в базе данных нет регистрации с теми же данными. Однако результатом является
1
. Это означало бы, что в базе данных уже есть что-то такое, но нет. Я предполагаю, что он связан с запросом, который я выполняю перед текущим запросом. Мне интересно, стоит ли мне закрывать заявление.
Что есть я пытался
Я попытался закрыть заявление
$stmt->close()
, но безрезультатно. Я попытался создать новые переменные вместо повторного использования тех из предыдущего запроса, но это тоже не сработало. Я triple проверил базу данных, чтобы убедиться, что там нет регистрации с теми же деталями, и я на 100% уверен, что в базе данных нет ничего плохого.
Код
Вот мой код. Я думаю, что проблема лежит в первой части запроса.
$query = "SELECT count(*) as reservation_amount FROM reservation WHERE `date`= ?";
$stmt = $db->prepare($query);
$stmt->bind_param("s", $datetime);
$stmt->execute();
$stmt->bind_result($count);
while($row = $stmt->fetch()){
$res_count = $row; //res_count is 1 in this case. I'm thinking I need to close something here?
}
$query = "SELECT count(*) as registered FROM reservation WHERE `number` = ? and `date`= ?";
$stmt = $db->prepare($query);
$stmt->bind_param("is", $number, $datetime);
$stmt->execute();
$stmt->bind_result($count);
while($row = $stmt->fetch()){
$registered = $row; //outputs 1 but I'm expecting 0
}
Входной
datetime = 2014-12-28 17:00:00
number = 0612345678
Database
База данных содержит следующую запись:
id name surname number email date amount
5 Henk Houtman 9060666 [email protected] 2014-12-28 17:00:00 1
ошибки
Нет ошибок.
'number = 0612345678'' '' int' будет преобразован в какое-либо другое десятичное значение –
'$ statement-> fetch()' возвращает boolean true, оценивая значение 1. Вероятно, вы хотите 'store_result()' и 'bind_result()'. http://php.net/manual/en/mysqli-stmt.bind-result.php –