如何调试PHP警告“绑定变量的数量不匹配预处理语句中的字段数量”


How to debug the PHP warning "Number of bind variables doesn't match number of fields in prepared statement"?

这是我的Android登录注册应用程序的PHP代码,我得到这个在我的服务器地址:

警告:mysqli_stmt_bind_result() [function.mysqli-stmt-bind-result]:绑定变量的数量与准备中的字段数量不匹配/home/a6546950/public_html/FetchUserdetails.php语句15

下面是PHP:

<? php
$con = mysqli_connect("XXX", "XXX", "XXX", "XXX");
mysqli_report(MYSQLI_REPORT_STRICT);
$name = $_POST["name"];
$collegename = $_POST["collegename"];
$batch = $_POST["batch"];
$username = $_POST["username"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "SELECT * FROM LoginList WHERE username =  ? AND password =?");
mysqli_stmt_bind_param($statement, "ss", $username, $password);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $name, $collegename, $batch, $username, $password);
$LoginList = array();
while (mysqli_stmt_fetch($statement)) {
    $LoginList[name] = $name;
    $LoginList[collegename] = $collegename;
    $LoginList[batch] = $batch;
    $LoginList[username] = $username;
    $LoginList[password] = $password;
}
echo json_encode($user);
mysqli_stmt_close($statement);
mysqli_close($con);
?>

这个问题正是错误所说的。您使用mysqli_stmt_bind_result绑定到5个变量($name, $collegename, $batch, $username, $password)。您的查询可能选择了多于(或少于)5个字段。