它说{“成功”:0,“消息”:“数据库错误2.请重试!“}


It say {"success":0,"message":"Database Error2. Please Try Again!"}

<?php
require("config.inc.php");
//if posted data is not empty
if (!empty($_POST)) {
if (empty($_POST['username']) || empty($_POST['password'])) {

    // Create some data that will be the JSON response 
    $response["success"] = 0;
    $response["message"] = "Please Enter Both a Username and Password.";
    die(json_encode($response));
}
else if (empty($_POST['name']) || empty($_POST['mobilenumber']) || empty($_POST['address']) || empty($_POST['city']) || empty($_POST['state'])) {
    // Create some data that will be the JSON response 
    $response["success"] = 0;
    $response["message"] = "Please Enter the required marked ** field.";
    die(json_encode($response));
}
else if (strlen($_POST['password']) < 6) {
$response["success"] = 0;
    $response["message"] = "Your password should be at least 6 characters.";
die(json_encode($response));               
}
else if ($_POST['password'] != $_POST['confirmpassword']){
    $response["success"] = 0;
    $response["message"] = "Confirm Password is not the same with Password you have entered.";
die(json_encode($response));
}
$query        = " SELECT 1 FROM user WHERE email = :email";
$query_params = array(
    ':email' => $_POST['username']
);
//Now let's make run the query:
try {
    // These two statements run the query against your database table. 
    $stmt   = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
    // For testing, you could use a die and message. 
    //die("Failed to run query: " . $ex->getMessage());
    //or just use this use this one to product JSON data:
    $response["success"] = 0;
    $response["message"] = "Database Error1. Please Try Again!";
    die(json_encode($response));
}
//fetch is an array of returned data.  If any data is returned,
//we know that the username is already in use, so we murder our
//page
$row = $stmt->fetch();
if ($row) {
    // For testing, you could use a die and message. 
    //die("This username is already in use");
    //You could comment out the above die and use this one:
    $response["success"] = 0;
    $response["message"] = "I'm sorry, this username is already in use";
    die(json_encode($response));
}
$query = "INSERT INTO user ( name, email, password, mobilenumber, address, city, postcode, state) VALUES ( ;name, :email, :password, :mobilenumber, :address, :city, :postcode, :state) ";
//Again, we need to update our tokens with the actual data:
$query_params = array(
    ':name' => $_POST['name'],
    ':email' => $_POST['username'],
    ':password' => $_POST['password'],
    ':mobilenumber' => $_POST['mobilenumber'],
    ':address' => $_POST['address'],
':city' => $_POST['city'],
    ':postcode' => $_POST['postcode'],
':state' => $_POST['state']
);
//time to run our query, and create the user
try {
    $stmt   = $db->prepare($query);
    $result = $stmt->execute($query_params);
}
catch (PDOException $ex) {
    // For testing, you could use a die and message. 
    //die("Failed to run query: " . $ex->getMessage());
    //or just use this use this one:
    $response["success"] = 0;
    $response["message"] = "Database Error2. Please Try Again!";
    die(json_encode($response));
}
//If we have made it this far without dying, we have successfully added
//a new user to our database.  We could do a few things here, such as 
//redirect to the login page.  Instead we are going to echo out some
//json data that will be read by the Android application, which will login
//the user (or redirect to a different activity, I'm not sure yet..)
$response["success"] = 1;
$response["message"] = "Username Successfully Added!";
echo json_encode($response);
//for a php webservice you could do a simple redirect and die.
//header("Location: login.php"); 
//die("Redirecting to login.php");

} else {
?>
<h1>Register</h1> 
<form action="register.php" method="post">
    Name:<br /> 
    <input type="text" name="name" value="" /> 
    <br /><br />     
    Email:<br /> 
    <input type="text" name="username" value="" /> 
    <br /><br />
    Password:<br /> 
    <input type="password" name="password" value="" /> 
    <br /><br />
    Confirm Password:<br /> 
    <input type="password" name="confirmpassword" value="" /> 
    <br /><br /> 
    Mobile Number:<br /> 
    <input type="text" name="mobilenumber" value="" /> 
    <br /><br />
    Address:<br /> 
    <input type="text" name="address" value="" /> 
    <br /><br /> 
    City:<br /> 
    <input type="text" name="city" value="" /> 
    <br /><br /> 
    Postcode:<br /> 
    <input type="text" name="postcode" value="" /> 
    <br /><br /> 
    State:<br /> 
    <input type="text" name="state" value="" /> 
    <br /><br /> 
    <input type="submit" value="Register New User" /> 
</form>
<?php
}
?>

这是我收到的消息{"成功":0,"消息":"数据库错误 2.请重试!我不知道该程序抓住了什么样的特殊......,有人帮我吗?非常感谢你们的帮助。如果需要任何其他编码,我可以在这里给出。

$query = "INSERT INTO user ( name, email, password, mobilenumber, address, city, postcode, state) VALUES ( ;name, :email, :password, :mobilenumber, :address, :city, :postcode, :state) ";

更改为

$query = "INSERT INTO user ( name, email, password, mobilenumber, address, city, postcode, state) VALUES ( :name, :email, :password, :mobilenumber, :address, :city, :postcode, :state) ";