0,因为数据库中没有相同的详细信息注册.结果却是1.这表明数据库中已存在具有相同信息的内容,但没有.我的猜测是它与我在当前查询之前执行的查询有关.我想知道我是否应该尝试结束声明.
$stmt->close()但无济于事.我尝试创建新变量而不是重用上一个查询中的变量,但这也不起作用.我对数据库进行了三重检查以确保没有相同的详细信息在那里进行注册,并且我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
}
Run Code Online (Sandbox Code Playgroud)
datetime = 2014-12-28 17:00:00
number = 0612345678
Run Code Online (Sandbox Code Playgroud)
id name surname number email date amount
5 Henk Houtman 9060666 henk@houtman.nl 2014-12-28 17:00:00 1
Run Code Online (Sandbox Code Playgroud)
mysqli_stmt_fetch将true成功返回。如果成功,您的查询将始终返回一行且仅返回一行(因为您正在请求COUNT,其中一行包含您正在查找的值)。
while($row = $stmt->fetch()){
$registered = $count;
}
Run Code Online (Sandbox Code Playgroud)
您应该使用绑定变量$count来确定返回行中的值。(注意:您不需要该$row变量。)
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |