2015-12-11 32 views
0

我在下面的代碼中得到了'嘗試獲取非對象錯誤的屬性'的3行。可以做些什麼來解決這個問題?我完整的代碼:如何解決'嘗試獲取非對象錯誤的屬性'&'未定義的變量:ID'在PHP代碼中?

$con=mysqli_connect("localhost","root","","mydatabase"); 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$data = json_decode(file_get_contents("php://input")); 

$name = mysqli_real_escape_string($con, $data->name); //ERROR FOR THIS LINE 
$address = mysqli_real_escape_string($con, $data->address); //ERROR FOR THIS LINE 
$sql = "INSERT INTO friend_data(name,address) values ('$name','$address')"; //ERROR FOR THIS LINE 

if (!mysqli_query($con, $sql)) { 
die('Error: ' . mysqli_error($con)); 
} 
echo "Record Added"; 
mysqli_close($con); 

我也是收到「未定義的變量:ID」爲下面的代碼錯誤:

$con=mysqli_connect("localhost","root","","mydatabase"); 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$id = $_GET['id']; //ERROR FOR THIS LINE 
$sql = "delete from friend_data where id= '$id'"; 

if (!mysqli_query($con, $sql)) { 
die('Error: ' . mysqli_error($con)); 
} 
echo "Record Removed"; 
mysqli_close($con); 

回答

0

你能告訴我你的JSON數據。對於第二種選擇,請嘗試此操作

$id = $_GET['id']; 
$con=mysqli_connect("localhost","root","","mydatabase"); 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 
$sql = "delete from friend_data where id= '$id'"; 

if (!mysqli_query($con, $sql)) { 
die('Error: ' . mysqli_error($con)); 
} 
echo "Record Removed"; 
mysqli_close($con); 
+0

對不起它did'nt工作...我沒有任何的JSON數據... –

+0

你爲什麼要使用json_decode()的時候,你沒有任何的JSON數據? –

+0

您的$ _GET ['id']可能沒有值,您檢查了嗎? –

0

您需要檢查變量是否存在,然後再對其執行任何操作。對於第二個問題,你不能保證ID是通過在整個URL,這樣做:

if (isset($_GET['id])) { 
    //do something 
} else { 
    //show an error 
} 

關於第一個問題再次你不能保證從什麼來「PHP://輸入」是一個JSON字符串或者json_decode工作。將代碼分解成不同的階段,並在繼續之前測試每個代碼是否工作,而不是將它們連接成一行。

if (($content = file_get_contents("php://input")) !== FALSE) { 
    $data = json_decode($content); 
    if (($data != null) && (is_object($data))) { 
    //do your stuff 
    } else { 
    //error 
    } 
} else { 
    `//error 
} 
相關問題