我在检索受影响或从数据库中检索的行数时遇到问题。当我检查$ 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
但数据库中有值..如何检查我的案例中的行数
答案 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
并查看错误是什么(如果有的话)时出错。