在php错误中更改密码

时间:2017-11-26 09:16:42

标签: php mysqli phpmyadmin

我试图更改密码但错误:

  

警告:mysqli_stmt_bind_result():绑定变量的数量不包含   匹配预备语句中的字段数   第12行/storage/ssd3/222/2815222/public_html/changepassword.php

 <?php
    $con = mysqli_connect("localhost", "id2815222_bigbrother", "orwell", "id2815222_orwell");

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

    $statement = mysqli_prepare($con, "UPDATE tbl_users SET password = ? WHERE studentno = ?");
    mysqli_stmt_bind_param($statement, "ss", $username, $password);
    mysqli_stmt_execute($statement);

   mysqli_stmt_store_result($statement);
   mysqli_stmt_bind_result($statement, $id, $studentno, $firstname, $middlename, $lastname, $birthday, $section ,$course, $college, $password, $phonenumber, $email);

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

    while(mysqli_stmt_fetch($statement)){
        $response["success"] = true;  
    }

    echo json_encode($response);
?>

关于我如何解决这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

更新查询仅返回truefalse它不会返回更新的数据。所以改变你的代码如下:

<?php
    $con = mysqli_connect("localhost", "id2815222_bigbrother", "orwell", "id2815222_orwell");

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

    $statement = mysqli_prepare($con, "UPDATE tbl_users SET password = ? WHERE studentno = ?");
    mysqli_stmt_bind_param($statement, "ss", $username, $password);
    $res = mysqli_stmt_execute($statement); // store result in $res



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

    if($res){ //check whether it is true or false
        $response["success"] = true;  
    }

    echo json_encode($response);
?>