下面的代码没有在register.php文件中输入if($user)语句
我已经尝试了一些用户注册代码。每个gose精细代码都可以工作,用户数据存储在数据库中,但在register.php文件中,执行时没有输入if($user)语句作为用户详细信息的$response。。!请帮助我,如果我错了,请纠正我。。。 听我说 /DB_Functions.php/下面的代码没有在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 *
问题:
用户数据存储在数据库中,但在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。请用更新后的代码测试您的应用程序。哇..像魅力一样工作,先生…感谢您帮助我度过了这一天..!!:)