gpt4 book ai didi

php - mysqli_stmt::num_rows() 返回错误值

转载 作者:行者123 更新时间:2023-12-01 00:34:22 26 4
gpt4 key购买 nike

我正在使用 mysqli 类和准备好的语句在 PHP 中编写一个数据库处理程序类。我试图打印出结果。它并没有立即起作用,所以我决定进行一些调试。我尝试使用 mysqli_statement 类中的 num_rows() 方法,但它一直返回 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

谁能告诉我这是为什么?

最佳答案

我想知道 num_rows() 是否相对于当前结果集进行报告。在获取数据之前 try catch num_rows() 。例如

if($statement->prepare($query))
{
$statement->execute();
$statement->store_result();
echo $statement->num_rows();
$statement->bind_result($name);
$statement->fetch();
echo $name;
}

这有什么影响吗?

关于php - mysqli_stmt::num_rows() 返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/80292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com