【发布时间】:2011-06-28 07:48:18
【问题描述】:
我一直无法使用 mysqli 获取要返回的行数。尽管肯定有一些结果,但我每次都只得到 0。
if($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")){
$stmt->bind_param('s', $data->id);
$stmt->execute();
$num_of_rows = $stmt->num_rows;
$stmt->bind_result($child_id, $child_title, $child_visible, $child_parent);
while($stmt->fetch()){
//code
}
echo($num_of_rows);
$stmt->close();
}
为什么不显示正确的数字?
【问题讨论】:
-
$stmt 上的 var_dump 会产生什么?
-
print_r() 返回:mysqli_stmt 对象([affected_rows] => -1 [insert_id] => 0 [num_rows] => 0 [param_count] => 1 [field_count] => 4 [errno] => 0 [错误] => [sqlstate] => 00000 [id] => 1)
-
确保数据存在...
-
我理解它的方式(如果我错了请纠正我,这对我来说是新的)是在调用 $stmt->execute() 之后,执行查询,所以任何在那之后的时间,我应该能够访问检索到的行数?我尝试在 $stmt->execute() 和 $stmt->fetch() 之后回显 $stmt->num_rows。该查询绝对正确,因为它正确填充了表格的单元格(//代码) - 所以有数据。谢谢