MySQLi 在获取之前验证一个语句是否存在
MySQLi verify if a statment exist before fetching
我有一个基本的 mysqli 准备好的语句,它工作正常
$stmt = $mysqli -> prepare($sql);
$stmt->bind_param('iii', $_SESSION['user_id'], $id_alerte, $id_roster);
$stmt->execute();
while ($stmt->fetch()) {
...
}
在 while 循环之后我要添加一些其他代码(主要是 echo)。当我的语句为空时, while 下的所有内容都将被删除(不打印回声)。
我想添加一个 if 条件来验证语句是否存在,如果不存在则跳过 while 循环。我该怎么办?
我试过了
if($stmt->num_rows > 0) {
my while loop
}
但它不会执行循环。
想法?
在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()) {
...
}
}
我有一个基本的 mysqli 准备好的语句,它工作正常
$stmt = $mysqli -> prepare($sql);
$stmt->bind_param('iii', $_SESSION['user_id'], $id_alerte, $id_roster);
$stmt->execute();
while ($stmt->fetch()) {
...
}
在 while 循环之后我要添加一些其他代码(主要是 echo)。当我的语句为空时, while 下的所有内容都将被删除(不打印回声)。 我想添加一个 if 条件来验证语句是否存在,如果不存在则跳过 while 循环。我该怎么办?
我试过了
if($stmt->num_rows > 0) {
my while loop
}
但它不会执行循环。 想法?
在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()) {
...
}
}