{"error":true,"error_msg":"Unknown error occurred in registration!"} 在执行期间..!
{"error":true,"error_msg":"Unknown error occurred in registration!"} during execution..!
当我执行填写字段并提交时,它给了我 >{"error":true,"error_msg":"Unknown error occurred in registration!"}
DB_Functions.php
<?php
class DB_Functions {
private $db;
// constructor
function __construct() {
try {
$hostname = "localhost";
$dbname = "miisky";
$dbuser = "root";
$dbpass = "";
$this->db = new PDO("mysql:host=$hostname;dbname=$dbname", $dbuser, $dbpass);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
/**
* Storing new user
* returns user details
*/
public function storeUser($fname, $lname, $email, $password, $mobile) {
try {
$hash = md5($password);
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$result = $this->db->query($sql);
if ($result) {
// get user details
$id = $this->db->lastInsertId(); //last inserted id
$sql = "SELECT * FROM db_name WHERE email = $email";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
}
}
}
catch (Exception $e) {
$error = 'Error accessing database: ' . $e->getMessage();
}
}
}
?>
这里是实际的 php 代码:register.php
<?php
require_once 'DB_Functions.php';
$db = new DB_Functions();
// json response array
$response = array("error" => FALSE);
if (isset($_POST['fname']) && isset($_POST['lname']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['mobile'])) {
// receiving the post params
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$mobile = $_POST['mobile'];
// create a new user
$user = $db->storeUser($fname, $lname, $email, $password, $mobile);
if ($user) {
// user stored successfully
$response["error"] = FALSE;
$response["uid"] = $user["id"];
$response["user"]["fname"] = $user["fname"];
$response["user"]["lname"] = $user["lname"];
$response["user"]["email"] = $user["email"];
$response["user"]["created_at"] = $user["created_at"];
$response["user"]["updated_at"] = $user["updated_at"];
echo json_encode($response);
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Unknown error occurred in registration!";
echo json_encode($response);
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required parameters (fname, lname, email, password or mobile) is missing!";
echo json_encode($response);
}
?>
最后是 html 代码:register.html
<html>
<form name = "register" action = "register.php" id = "register" method = "POST">
<label>First name:</label>
<input type = text name = "fname" id = "fname">
<label>Last name:</label>
<input type = "text" name = "lname" id = "lname">
<label>E-mail:</label>
<input type = "email" name = "email" id = "email">
<label>Password</label>
<input type = "password" name = "password" id = "password">
<label>Mobile no:</label>
<input type = "number" name = "mobile" id = "mobile">
<input type="submit" value="Insert" name="submit" id="submit" href = "#">
</form>
</html>
您的 select 查询有误,因此您的函数失败并且 return 没有任何结果
你需要改变
$sql = "SELECT * FROM db_name WHERE email = $email";// need quotes here
到
$sql = "SELECT * FROM db_name WHERE email = '" . $email . "'";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
} else {
return FALSE;
}
将您的插入查询更改为
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$dbh = $this->db->prepare($sql);
$dbh->execute();
$result = $this->db->rowCount();
完整的功能是
<?php
class DB_Functions {
private $db;
// constructor
function __construct() {
try {
$hostname = "localhost";
$dbname = "miisky";
$dbuser = "root";
$dbpass = "";
$this->db = new PDO("mysql:host=$hostname;dbname=$dbname", $dbuser, $dbpass);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
/**
* Storing new user
* returns user details
*/
public function storeUser($fname, $lname, $email, $password, $mobile) {
try {
$hash = md5($password);
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$dbh = $this->db->prepare($sql);
$dbh->execute();
$result = $this->db->rowCount();
if ($result) {
// get user details
$id = $this->db->lastInsertId(); //last inserted id
$sql = "SELECT * FROM db_name WHERE email = '" . $email . "'";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
} else {
return FALSE;
}
} else {
return FALSE;
}
} catch (Exception $e) {
$error = 'Error accessing database: ' . $e->getMessage();
}
}
}
?>
当我执行填写字段并提交时,它给了我 >{"error":true,"error_msg":"Unknown error occurred in registration!"}
DB_Functions.php
<?php
class DB_Functions {
private $db;
// constructor
function __construct() {
try {
$hostname = "localhost";
$dbname = "miisky";
$dbuser = "root";
$dbpass = "";
$this->db = new PDO("mysql:host=$hostname;dbname=$dbname", $dbuser, $dbpass);
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
/**
* Storing new user
* returns user details
*/
public function storeUser($fname, $lname, $email, $password, $mobile) {
try {
$hash = md5($password);
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$result = $this->db->query($sql);
if ($result) {
// get user details
$id = $this->db->lastInsertId(); //last inserted id
$sql = "SELECT * FROM db_name WHERE email = $email";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
}
}
}
catch (Exception $e) {
$error = 'Error accessing database: ' . $e->getMessage();
}
}
}
?>
这里是实际的 php 代码:register.php
<?php
require_once 'DB_Functions.php';
$db = new DB_Functions();
// json response array
$response = array("error" => FALSE);
if (isset($_POST['fname']) && isset($_POST['lname']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['mobile'])) {
// receiving the post params
$fname = $_POST['fname'];
$lname = $_POST['lname'];
$email = $_POST['email'];
$password = $_POST['password'];
$mobile = $_POST['mobile'];
// create a new user
$user = $db->storeUser($fname, $lname, $email, $password, $mobile);
if ($user) {
// user stored successfully
$response["error"] = FALSE;
$response["uid"] = $user["id"];
$response["user"]["fname"] = $user["fname"];
$response["user"]["lname"] = $user["lname"];
$response["user"]["email"] = $user["email"];
$response["user"]["created_at"] = $user["created_at"];
$response["user"]["updated_at"] = $user["updated_at"];
echo json_encode($response);
} else {
// user failed to store
$response["error"] = TRUE;
$response["error_msg"] = "Unknown error occurred in registration!";
echo json_encode($response);
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Required parameters (fname, lname, email, password or mobile) is missing!";
echo json_encode($response);
}
?>
最后是 html 代码:register.html
<html>
<form name = "register" action = "register.php" id = "register" method = "POST">
<label>First name:</label>
<input type = text name = "fname" id = "fname">
<label>Last name:</label>
<input type = "text" name = "lname" id = "lname">
<label>E-mail:</label>
<input type = "email" name = "email" id = "email">
<label>Password</label>
<input type = "password" name = "password" id = "password">
<label>Mobile no:</label>
<input type = "number" name = "mobile" id = "mobile">
<input type="submit" value="Insert" name="submit" id="submit" href = "#">
</form>
</html>
您的 select 查询有误,因此您的函数失败并且 return 没有任何结果
你需要改变
$sql = "SELECT * FROM db_name WHERE email = $email";// need quotes here
到
$sql = "SELECT * FROM db_name WHERE email = '" . $email . "'";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
} else {
return FALSE;
}
将您的插入查询更改为
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$dbh = $this->db->prepare($sql);
$dbh->execute();
$result = $this->db->rowCount();
完整的功能是
<?php
class DB_Functions {
private $db;
// constructor
function __construct() {
try {
$hostname = "localhost";
$dbname = "miisky";
$dbuser = "root";
$dbpass = "";
$this->db = new PDO("mysql:host=$hostname;dbname=$dbname", $dbuser, $dbpass);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
/**
* Storing new user
* returns user details
*/
public function storeUser($fname, $lname, $email, $password, $mobile) {
try {
$hash = md5($password);
$sql = "INSERT INTO db_name(fname, lname, email, password, mobile) VALUES ('$fname', '$lname', '$email', '$hash', '$mobile')";
$dbh = $this->db->prepare($sql);
$dbh->execute();
$result = $this->db->rowCount();
if ($result) {
// get user details
$id = $this->db->lastInsertId(); //last inserted id
$sql = "SELECT * FROM db_name WHERE email = '" . $email . "'";
$result = $this->db->query($sql);
$no_of_rows = $result->fetchColumn();
// returns confirmation message if completed
if ($no_of_rows > 0) {
return "existsandcompleted";
} else {
return FALSE;
}
} else {
return FALSE;
}
} catch (Exception $e) {
$error = 'Error accessing database: ' . $e->getMessage();
}
}
}
?>