下面的代码没有在register.php文件中输入if($user)语句

下面的代码没有在register.php文件中输入if($user)语句,php,json,database,Php,Json,Database,我已经尝试了一些用户注册代码。每个gose精细代码都可以工作,用户数据存储在数据库中,但在register.php文件中,执行时没有输入if($user)语句作为用户详细信息的$response。。!请帮助我,如果我错了,请纠正我。。。 听我说 /DB_Functions.php/ 问题: 用户数据存储在数据库中,但在register.php文件中,执行不会输入if($user)语句作为用户详细信息的$response 解决方案: 我很确定问题是因为下面这句话 $sql = "SELECT *

我已经尝试了一些用户注册代码。每个gose精细代码都可以工作,用户数据存储在数据库中,但在register.php文件中,执行时没有输入if($user)语句作为用户详细信息的$response。。!请帮助我,如果我错了,请纠正我。。。 听我说 /DB_Functions.php/


问题:

用户数据存储在数据库中,但在register.php文件中,执行不会输入if($user)语句作为用户详细信息的$response

解决方案:

我很确定问题是因为下面这句话

$sql = "SELECT * FROM db_name WHERE email = '$email'";
                        ^ 
我想应该是,

$sql = "SELECT * FROM users WHERE email = '$email'";
                        ^
此外,您的
storeUser()
方法应该如下所示:

// your code

public function storeUser($fname, $lname, $email, $password, $mobile) {  
    try {
        $hash = md5($password);
        $sql = "INSERT INTO users(fname, lname, email, password, mobile, created_at) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile', NOW())";
        $dbh = $this->db->prepare($sql);

        if($dbh->execute()){
            // get user details
            $sql = "SELECT * FROM users WHERE email = '$email' LIMIT 1";
            $dbh = $this->db->prepare($sql);
            $result = $dbh->execute();
            $rows = $dbh->fetch();
            $n = count($rows);
            if($n){
                return $rows;
            }
        }
    }
    catch (Exception $e) {
        echo 'Error accessing database: ' . $e->getMessage();
    }
    return false;
}

// your code

问题:

用户数据存储在数据库中,但在register.php文件中,执行不会输入if($user)语句作为用户详细信息的$response

解决方案:

我很确定问题是因为下面这句话

$sql = "SELECT * FROM db_name WHERE email = '$email'";
                        ^ 
我想应该是,

$sql = "SELECT * FROM users WHERE email = '$email'";
                        ^
此外,您的
storeUser()
方法应该如下所示:

// your code

public function storeUser($fname, $lname, $email, $password, $mobile) {  
    try {
        $hash = md5($password);
        $sql = "INSERT INTO users(fname, lname, email, password, mobile, created_at) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile', NOW())";
        $dbh = $this->db->prepare($sql);

        if($dbh->execute()){
            // get user details
            $sql = "SELECT * FROM users WHERE email = '$email' LIMIT 1";
            $dbh = $this->db->prepare($sql);
            $result = $dbh->execute();
            $rows = $dbh->fetch();
            $n = count($rows);
            if($n){
                return $rows;
            }
        }
    }
    catch (Exception $e) {
        echo 'Error accessing database: ' . $e->getMessage();
    }
    return false;
}

// your code

你只是吞下了所有的例外,所以你绝对没有办法告诉别人出了什么问题。这通常是一个坏主意,因为调试非常困难!可以感谢您的反馈。。我如何改进此功能?@krishna您应该从
storeUser()返回
true
false
method您可以提供代码片段吗。。!?你只是吞下了所有的例外,所以你绝对没有办法告诉别人出了什么问题。这通常是一个坏主意,因为调试非常困难!可以感谢您的反馈。。我如何改进此功能?@krishna您应该从
storeUser()返回
true
false
method您可以提供代码片段吗。。!?先生遗憾的是,它向我显示了相同的消息,即{“error”:true,“error_msg”:“注册时发生未知错误!”}它根本没有输入$user=$db->storeUser($fname,$lname,$email,$password,$mobile);如果($user){in register.php代码直接跳到:else{//user未能存储$response[“error”]=TRUE;$response[“error\u msg”]=“注册时发生未知错误!”;echo json\u encode($response);明白了,先生……真假语句中的一些错误被洗牌了,但先生它的{“error”:false,“uid”:null,“user”:{“fname”:null,“lname”:null,“email”:null,“created_at”:null,“updated_at”:null}所有null不显示实际值data@krishna我已经更新了整个
storeUser()
method。请使用更新的代码测试您的应用程序。哇..像魅力先生一样工作..感谢您帮助我度过了这一天..!!:)先生..!!遗憾的是,它向我显示了相同的消息,即{“error”:true,“error\u msg”:“注册时发生未知错误!”}它根本没有输入$user=$db->storeUser($fname、$lname、$email、$password、$mobile);如果($user){in register.php代码直接跳到:else{//user未能存储$response[“error”]=TRUE;$response[“error_msg”]=“注册中发生未知错误!”;echo json_encode($response);明白了,长官……真假陈述中的一些错误被洗牌了,但是长官它的{“错误”:false,“uid”:null,“用户”:{“fname”:null,“lname”:null,“email”:null,“created_at”:null,“updated_at”:null}所有null都不显示实际值data@krishna我已经更新了整个
storeUser()
method。请用更新后的代码测试您的应用程序。哇..像魅力一样工作,先生…感谢您帮助我度过了这一天..!!:)