Невозможно получить идентификатор в подготовленном операторе mySQLi - PullRequest
0 голосов
/ 20 июня 2019

У меня очень странная проблема, и я не могу понять, почему. В одном случае код работает, а в другом - нет.

Код не работает:

$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;
    }
}

Я очень запутался и, пожалуйста, помогите мне решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...