MySQLi在获取之前验证是否存在语句

时间:2015-01-22 11:29:13

标签: php mysqli

我有一个基本的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
}

但它不会执行循环。 想法?

1 个答案:

答案 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()) {
     ...
    }
}