mysqli计算结果并获取它们

时间:2015-03-03 17:33:56

标签: php mysqli fetch

您好我有一份准备好的声明,我需要计算得到的结果数量。为了做到这一点,我使用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>";
    ...
}

1 个答案:

答案 0 :(得分:0)

您可以尝试使用

...
$rsActivation->execute();
$results = $rsActivation->get_results();

$totalRows = $results->num_rows;

你应该能够使用像

这样的东西来获取

$ results-&gt; fetch_assoc(),$ results-&gt; fetch_row()等。

以下是该文档:http://php.net/manual/en/class.mysqli-result.php