[英]mysqli_stmt_num_rows() returns 0 rows
我试图使用准备好的语句计算查询返回的行数。
像这样的东西:
$q = "SELECT name, address, contact FROM members";
$stmt = mysqli_prepare ($dbc, $q);
mysqli_stmt_store_result($stmt);
// Get the number of rows returned:
$rows = mysqli_stmt_num_rows($stmt);
echo $rows;
但是执行此查询时,我总是得到0行。 我使用mysql客户端ant测试了它,然后得到了6条返回的行。
谁能告诉我这是怎么回事?
谢谢。
在尝试存储结果之前,需要调用mysqli_stmt_execute
以实际获取结果集。
$stmt = mysqli_prepare ($dbc, $q);
mysqli_stmt_execute($stmt); // <--------- currently missing!!!
mysqli_stmt_store_result($stmt);
$rows = mysqli_stmt_num_rows($stmt);
您必须执行查询
$q = "SELECT name, address, contact FROM members";
if ($stmt = mysqli_prepare ($dbc, $q)) {
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
// Get the number of rows returned:
$rows = mysqli_stmt_num_rows($stmt);
echo $rows;
mysqli_stmt_free_result($stmt);
mysqli_stmt_close($stmt);
}
您需要在语句句柄上调用execute(),现在您仅在准备查询。
$q = "SELECT name, address, contact FROM members";
$stmt = mysqli_prepare ($dbc, $q);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
// Get the number of rows returned:
$rows = mysqli_stmt_num_rows($stmt);
echo $rows;
我担心您的表成员是否实际有记录。 无论如何尝试
$rows = mysqli_num_rows($stmt);
//or
$rows = mysql_num_rows($stmt);
这对我来说很有效,并且由于我的表中只有5条记录而返回了5条。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.