{“错误”:true,“错误_msg”:“注册中发生未知错误!”}.


{"error":true,"error_msg":"Unknown error occurred in registration!"} during execution..!

当我执行填充字段并提交时,它会给我>{"error":true,"error_msg":"注册中发生未知错误!"}

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>

您的选择查询中有错误,因此您的函数失败,不返回任何

您需要更改

 $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();
        }
    }
}
?>