我所有的mysql函数似乎都遇到了这个问题。简单的insert语句有效,但是当我检查受影响的行时,它返回-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
}
为什么会发生这种情况?
修改
答案 0 :(得分:2)
我有完全相同的问题。我已经调查了Netbeans和Xdebug的问题,看来这是MySQLi扩展本身的一个错误。已根据bug report 制作。与此同时,您可以使用更宽容的表达式,例如
if (mysqli_sqlstate($dbc) == 00000) {
//your code
}
继续调试剩余的代码。