У меня есть этот кодmysqli_stmt_affected_rows не работает для обновлений, подготовленного заявления
$SQL = "UPDATE cart SET a = ? WHERE b = ? AND c = ?";
if($stmt2 = mysqli_prepare($conn, $SQL)){
mysqli_stmt_bind_param($stmt2, "iii", $a1, $b1, $c1);
mysqli_stmt_execute($stmt2);
if(mysqli_affected_rows($conn)){
echo "updated";
mysqli_stmt_close($stmt2);
}
else
echo "nope";
}
Я выясняя, почему выше код не работает. Я отлаживаю все, что знаю.
И наконец, я удаляю условие if. Так или иначе, он работает. Пытался найти в Интернете, чтобы выяснить, в чем причина, но не нашел. Может кто-нибудь, пожалуйста, объясните мне, почему это так происходит? Я новичок в mysqli. Очень нужна помощь :) спасибо!
Добавить сообщение об ошибках в начало вашего файла (ов) сразу после открытия ' Php' tag' error_reporting (E_ALL); ini_set ('display_errors', 1); 'Вы вообще проверяете ошибки? Вы уверены, что подключились? 'mysqli_affected_rows ($ conn)' будет возвращать нуль или число, а * всегда будет true *. Вы должны тестировать положительное целое число, чтобы узнать, произошло ли обновление. –
Измените 'echo 'nope" 'на' echo mysqli_error ($ conn) ', поэтому вы видите причину сбоя' if'. – Barmar
Измените ... весь код на использование объектов. – Devon