当前位置:  开发笔记 > 编程语言 > 正文

mysqli_statement :: num_rows()返回错误的值

如何解决《mysqli_statement::num_rows()返回错误的值》经验,为你挑选了1个好方法。

我正在使用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

谁能告诉我为什么会这样?



1> Nathan Stron..:

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

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

那会有什么影响吗?

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有