我有一个基本的mysqli准备好的声明,工作正常
$stmt = $mysqli -> prepare($sql);
$stmt->bind_param('iii', $_SESSION['user_id'], $id_alerte, $id_roster);
$stmt->execute();
while ($stmt->fetch()) {
...
}
在while循环之后,我还有一些其他代码要添加(主要是echo)。当我的陈述是空的时候,所有的东西都被删除了(不打印回声)。 我想添加一个if条件来验证语句是否存在,如果没有跳过while循环。我该怎么办?
我试过
if($stmt->num_rows > 0) {
my while loop
}
但它不会执行循环。 想法?
答案 0 :(得分:2)
在mysqli中,如果要在同一个mysqli对象中使用结果,则需要调用$stmt->store_result()
。 (注释来自php.net的this comment)
您修改后的代码:
$stmt = $mysqli -> prepare($sql);
$stmt->bind_param('iii', $_SESSION['user_id'], $id_alerte, $id_roster);
$stmt->execute();
$stmt->store_result();
if($stmt->num_rows > 0) {
while ($stmt->fetch()) {
...
}
}