2017-02-14 22 views
0

我對PHP非常陌生。我不想創建json服務,它將負責保存數據庫中的註冊表單值。問題是,它會在數據庫中保存空值。問題是我不明白如何從JSON獲取值,並將其保存在數據庫PHP - 數據庫中的JSON空值

PHP代碼

<?php 

// Include confi.php 
include_once('confi.php'); 


if($_SERVER['REQUEST_METHOD'] == "POST"){ 
    // Get data 
    $name = isset($_POST['name']) ? mysql_real_escape_string($_POST['name']) :''; 
    $email = isset($_POST['email']) ? mysql_real_escape_string($_POST['email']) : ''; 
    $password = isset($_POST['pwd']) ? mysql_real_escape_string($_POST['pwd']) : ''; 
    $status = isset($_POST['status']) ? mysql_real_escape_string($_POST['status']) : ''; 

    // Insert data into data base 
    $sql = "INSERT INTO `test`.`users` (ID,`name`, `email`, `password`, `status`) VALUES (NULL,'$name', '$email', '$password', '$status');"; 
    $qur = mysql_query($sql); 
    if($qur){ 
     $json = array("status" => 1, "msg" => "Done User added!"); 
    }else{ 
     $json = array("status" => 0, "msg" => "Error adding user!"); 
    } 
}else{ 
    $json = array("status" => 0, "msg" => "Request method not accepted"); 
} 
@mysql_close($conn); 

/* Output header */ 
    header('Content-type: application/json'); 
    echo json_encode($json); 

發送值與POST方法

{ 
    "name":"aamir", 
    "email":"[email protected]", 
    "pwd":"12345678", 
    "status":"yes" 
} 

This is the result 和我跟隨此鏈接 https://trinitytuts.com/build-first-web-service-php/

+1

1)請使用'mysql_ *'功能,因爲他們從PHP開始7.0版本中刪除避免。改爲使用'mysqli'或'PDO'。 2)如果你'echo $ sql;',它顯示正確的值嗎? –

+0

@Jiri Hrazdil tihis line如果我在冒號後用單引號表示價值,它可以節省價值。像這條線在數據庫中保存香蕉... $ name = isset($ _ POST ['name'])? mysql_real_escape_string($ _ POST ['name']):'Banana'; – Aamir

+0

這意味着'$ _POST ['name']'沒有設置。問題出在您用POST方法將值發送到您的腳本的部分... –

回答

0

從我的意見你有客戶端服務器int eractions。 PHP沒有解析JSON數據,只能使用url編碼值。 因此,您的$ _POST變量是空數組。

要獲得JSON格式的值,你應該使用

$post = json_decode(file_get_contents('php//input'), true)); 
+0

我不知道該放哪條線。或者我應該用這行代替哪個代碼 – Aamir

+0

嘗試把它放在第一行,並在第二行寫下:'var_dump($ post); exit;' – degr

+0

謝謝你的工作...... – Aamir