У меня очень странная проблема, и я не могу понять, почему. В одном случае код работает, а в другом - нет.
Код не работает:
$sql = "SELECT id FROM users WHERE otp = ? AND phone = ?";
$stmt = mysqli_prepare($connect, $sql);
mysqli_stmt_bind_param($stmt, "ss", $otp, $phone);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
if (mysqli_stmt_num_rows($stmt) == 1) {
mysqli_stmt_bind_result($stmt, $id);
while (mysqli_stmt_fetch($stmt)) {
echo $id;
}
}
В этом примере $ id, который я получаю, всегда равен 3 (я не знаю почему). В действительности идентификатор равен 7, но когда я показываю то есть имя вместо идентификатор - это работает, и я получаю правильное имя.
Код работает:
$sql = "SELECT name FROM users WHERE otp = ? AND phone = ?";
$stmt = mysqli_prepare($connect, $sql);
mysqli_stmt_bind_param($stmt, "ss", $otp, $phone);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
if (mysqli_stmt_num_rows($stmt) == 1) {
mysqli_stmt_bind_result($stmt, $name);
while (mysqli_stmt_fetch($stmt)) {
echo $name;
}
}
Я очень запутался и, пожалуйста, помогите мне решить эту проблему.