当我将结果作为数组获取时,我遇到问题{<1}}:
num_row
如果我将store_results和num_rows放在示例中,我会得到一个
在非对象错误上调用成员函数fetch_array()。
如果我将它放在fetch_array之后,它总是等于零。我以前成功使用过num_rows,但这是我第一次尝试将它与fetch_array一起使用。
答案 0 :(得分:2)
查看文档
<强> mysqli_result::$num_rows 强>
int $mysqli_result->num_rows;
如果您出于某种原因需要使用num_rows
而不是
$stmt->store_result();
$exist=$stmt->num_rows;
$result = $stmt->get_result();
$peopleres = $result->fetch_array(MYSQLI_ASSOC); // this does work :)
if ($exist == 0) {
//do something it it's zero
}
你可以尝试
$result = $stmt->get_result();
$exist = $result->num_rows;
if ($exist == 0) {
//do something it it's zero
}
$row = $result->fetch_array(MYSQLI_ASSOC);
现在,如果您只是检查结果集中是否有任何行,那么num_rows
的使用并非绝对必要,因为您已经在客户端上获得了结果集。你可以尝试获取一行
$result = $stmt->get_result();
if (!$row = $result->fetch_array(MYSQLI_ASSOC)) {
//do something if there's no row
} else {
//do what you have to do with you data in the row
echo 'peopleid: ' . $row['peopleid'];
}
答案 1 :(得分:-3)
num rows是有史以来最无用的功能 你也不需要它。只需获取您的数据并使用它而不是$ exists flag:
if(!$peopleres) ...
答案 2 :(得分:-3)
您也可以使用:
$exist = $stmt->affected_rows;
删除:
$stmt->store_result();
$exist=$stmt->num_rows;
$result = $stmt->get_result();
添加: $ result = $ stmt-&gt; get_result(); $ exist = $ stmt-&gt; affected_rows;