我有一个非常奇怪的问题,我不明白为什么。在一种情况下,代码有效,而在另一种情况下,代码无效。
代码不起作用:
$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(我不知道为什么)。实际上,id是7,但是当我显示 name 而不是 id 时,它可以工作并且我得到正确的名字。
代码有效:
$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;
}
}
我很困惑,请帮助我解决这个问题。