查找受影响或检索的行数

时间:2015-04-14 19:50:07

标签: php mysql

我在检索受影响或从数据库中检索的行数时遇到问题。当我检查$ myslqi-> affected_rows的值时,它有非常意外的值。

      echo $_GET['User_Id'];
   $ClientIP=get_client_ip_server();
   $query= "select IP from iptable where IP=?";
   $stmt=$mysqli->stmt_init();
   $stmt->prepare($query);
   $stmt->bind_param('s', $IP);
   $IP=$ClientIP; // Must be retrieved dynamically
   $stmt->execute();
   $stmt->bind_result($ip);
   $stmt->fetch();
   echo $stmt->affected_rows;

在此代码中,受影响的行显示-1但数据库中有值..如何检查我的案例中的行数

3 个答案:

答案 0 :(得分:1)

affected_rows返回受上一次INSERT,UPDATE,REPLACE或DELETE查询影响的行数。

为了获得结果中的行数,您需要获取mysql_result对象。试试这个:

$stmt->get_result()->num_rows

答案 1 :(得分:0)

affected_rows不适用于select语句,仅适用于DML语句。如果您想知道检索了多少行,则应使用num_rows代替。

答案 2 :(得分:0)

在select语句后调用affected_rows将返回与num_rows

相同的值 来自affected_rows

-1表示尝试在mysqli对象上调用error并查看错误是什么(如果有的话)时出错。

http://docs.php.net/manual/da/mysqli.error.php