Кажется, что все мои функции 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 }
Почему это произойдет?
Редактировать:
У меня была точно такая же проблема. Я исследовал проблему с Netbeans и Xdebug, и кажется, что это ошибка в самом расширении MySQLi. Был составлен отчет об ошибке . Тем временем вы можете вместо этого использовать более прощающее выражение, например
if (mysqli_sqlstate($dbc) == 00000) { //your code }
для продолжения отладки вашего оставшегося кода.