PHP mysqli stmt 绑定(bind)结果未获取值

标签 php mysql

有人能告诉我这段代码有什么问题吗?几个小时以来,我一直在尝试从我的数据库中获取值,但结果始终为空。除了用户名和密码。

<?php
$con = mysqli_connect("aaaaa", "bbbbb", "cccccc", "ddddd");

$email = $_POST["email"];
$password = $_POST["password"];

$statement = mysqli_prepare($con, "SELECT * FROM table WHERE email = ? AND password = ?");
mysqli_stmt_bind_param($statement, "ss", $email, $password);
mysqli_stmt_execute($statement);

mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $id, $full_name, $email, $password, $distance, $average_rating, $home_address, $work_address);

$response = array();
$response["success"] = false;

while(mysqli_stmt_fetch($statement)){
    $response["success"] = true;
    $response["full_name"] = $full_name;
    $response["email"] = $email;
    $response["password"] = $password;
    $response["distance"] = $distance;
    $response["average_rating"] = $average_rating;
    $response["home_address"] = $home_address;
    $response["work_address"] = $work_address;
}

echo json_encode($response);
?>

问题似乎出在mysqli_stmt_bind_result 行,但我想不通。变量的顺序是正确的。我与数据库建立了连接,一切正常,但结果为空。

这是 JSON 结果:

{"success":true,"full_name":null,"email":"aaaaaaaaa","password":"bbbbbbb","distance":null,"average_rating":null,"home_address":null,"work_address":null}

最佳答案

好的,我已经设法用下面的代码解决了我的问题。我不知道以前的代码有什么问题。如果有人碰巧知道该问题的解决方案,请在评论中回答,我很好奇。注意:代码仅供测试建议。

<?php
$con = mysqli_connect("aaa", "bbb", "ccc", "ddd");

$email = $_POST["email"];
$password = $_POST["password"];

$sql = "SELECT * FROM table";
$result = mysqli_query($con, $sql);


$response = array();
$response["success"] = false;

while($row = mysqli_fetch_assoc($result)){
    if($row["email"]==$email && $row["password"] == $password){
        $response["success"] = true;
        $response["full_name"] = $row["full_name"];
        $response["email"] = $row["email"];
        $response["password"] = $row["password"];
        $response["distance"] = $row["distance"];
        $response["average_rating"] = $row["average_rating"];
        $response["home_address"] = $row["home_address"];
        $response["work_address"] = $row["work_address"];
        break;
    }
}

echo json_encode($response);
?>

关于PHP mysqli stmt 绑定(bind)结果未获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36657436/

相关文章:

php - 重新排列数组键 php

mysql - Django 1.7.1 中的 django.db.migrations.graph.CircularDependencyError

python - 如何从mysql数据库的fatched数据中替换()和,

php - 使用 JOIN 从不同的表中检索多个数据值

php - 更新Mysql数据

php - 如何在有限的时间内验证/授权匿名用户?

php - 循环包含语句

php - 如何获得一系列图像的累积高度?

PHP;原产地保护组织;带有下拉菜单的 MySQL INSERT 查询

mysql - 经典 ASP 和 MySQL 的嵌套注释