错误:mysqli_stmt :: bind_result():绑定变量数与预准备语句中的字段数不匹配

时间:2016-04-08 17:18:35

标签: php mysqli

运行此方法时出现此错误。任何人都可以解释我代码中的错误。以下是我的功能代码

public function storeUser($name, $email, $password) {
    $uuid = uniqid('', true);
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash["encrypted"]; // encrypted password
    $salt = $hash["salt"]; // salt

    $stmt = $this->conn->prepare("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES(?, ?, ?, ?, ?, NOW())");
    $stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $salt);
    $stmt->execute();
    $result=$stmt->bind_result($uuid, $name, $email, $encrypted_password, $salt);
   // $result = $stmt->execute();
    $stmt->close();

    // check for successful store
    if ($result) {
        $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?");
        $stmt->bind_param("s", $email);
        $stmt->execute();
        $user = $stmt->fetch();
        $stmt->close();

        return $user;
    } else {
        return false;
    }
}

1 个答案:

答案 0 :(得分:1)

错误说你绑定了N个变量但没有字段,因为insert没有返回值。 bind_result()应该在选择语句中使用。

要修复,请删除此行:

$result=$stmt->bind_result($uuid, $name, $email, $encrypted_password, $salt);