我正在使用 mysqli 类和准备好的语句在 PHP 中编写数据库处理程序类。我试图打印出结果。它没有立即工作,所以我决定进行一些调试。我尝试使用类中的num_rows()
方法mysqli_statement
,但它一直返回 0。我决定编写一小部分测试代码以使其更简单,这样我就可以看到出了什么问题。然后我能够返回我想要的数据,但该num_rows()
方法仍然返回 0,即使它实际上是在选择和检索一些数据。这是代码:
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
if(mysqli_connect_errno())
{
die('connection failed');
}
$statement = $mysqli->stmt_init();
$query = "SELECT name FROM table WHERE id = '2000'";
if($statement->prepare($query))
{
$statement->execute();
$statement->bind_result($name);
$statement->fetch();
$statement->store_result();
echo $statement->num_rows();
echo $name;
}
else
{
echo 'prepare statement failed';
exit();
}
预期结果是:
1name
实际结果是:
0name
谁能告诉我这是为什么?