Mysqli_affected_rows()返回-1,但查询工作



我所有的mysql函数似乎都有这个问题。简单的插入语句工作,但是当我检查受影响的行时,它返回-1

这工作,一个新的行插入到数据库中,但调试器显示mysqli_affected_rows作为-1,因此else块得到运行:

$query = "INSERT INTO users (email, password) VALUES ('$email', '$password')";
mysqli_query($this->connection, $query) or die('Query failed in register.');

if (mysqli_affected_rows($this->connection)>0)  {
    //this doesnt get run, 
}
else {
   // this is run
}

为什么会发生这种情况?

编辑:

  • 我使用Netbeans, Xdebug, WAMP.
  • 当我在连接创建后立即查看连接时,受影响的行已经设置为-1。
  • 在执行成功的查询后,在执行受影响的行检查之前,连接仍然显示-1。
  • 连接对象中没有错误消息或错误编号。

我也遇到了同样的问题。我已经调查了Netbeans和Xdebug的问题,似乎这是一个错误在MySQLi扩展本身。已经生成了相应的bug报告。与此同时,你可以使用一个更宽容的表达式,例如

if (mysqli_sqlstate($dbc) == 00000) {
//your code
}

相关内容

  • 没有找到相关文章