您好我有一份准备好的声明,我需要计算得到的结果数量。为了做到这一点,我使用store_result和num_rows
$query = 'SELECT userId, promo, email FROM users WHERE active = ?';
$rsActivation = $db->prepare($query);
$rsActivation->bind_param('s', $actv);
$rsActivation->execute();
$rsActivation->store_result();
$totalRows = $rsActivation->num_rows;
此代码设法为我提供行数。问题是,如果我这样做,我不能在$ rsActivation上使用fetch()。如果我使用fetch而不使用store_result,我就无法获得行数。
我怎样才能完成这两件事?
由于
解决:
原来我的问题是我试图将结果作为关联数组获取。相反,我使用bind_result为变量赋值。然后我能够使用store_result和num_rows来获取计数,之后我将fetch()与我在bind_result中指定的变量一起使用。
$query = 'SELECT userId, promo, email FROM users WHERE active = ?';
$rsActivation = $db->prepare($query);
$rsActivation->bind_param('s', $actv);
$rsActivation->execute();
$rsActivation->bind_result($userId, $promo, $email);
$rsActivation->store_result();
$totalRows = $rsActivation->num_rows;
while($rsActivation->fetch()){
echo "<p>". $userId ."</p>";
...
}
答案 0 :(得分:0)
您可以尝试使用
...
$rsActivation->execute();
$results = $rsActivation->get_results();
$totalRows = $results->num_rows;
你应该能够使用像
这样的东西来获取$ results-&gt; fetch_assoc(),$ results-&gt; fetch_row()等。