我有點新來SQL,我有問題。我正在按照Here的教程嘗試從我的數據庫中獲取數據到我的android應用程序中。從php數據庫中獲取一組JSON數據
我有它的工作,但它只得到一條線。我知道應該可以迭代數據庫並將每個匹配ID的行回送給JSON,但我不知道如何。我將如何做到這一點?
我當前的代碼:
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
require_once('dbConnect.php');
$sql = "SELECT * FROM LATLON WHERE DeviceID='".$id."'";
$r = mysqli_query($con,$sql);
$res = mysqli_fetch_array($r);
$result = array();
array_push($result,array(
"INDEX"=>$res['INDEX'],
"DeviceID"=>$res['DeviceID'],
"LAT"=>$res['LAT'],
"LON"=>$res['LON']
)
);
echo json_encode(array("result"=>$result));
mysqli_close($con);
}
?>
編輯 我編輯我的代碼這一點,但我卻一無所獲。仍然不完全理解正在發生的事情。感謝所有的幫助!
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
$id = $_GET['id'];
require_once('dbConnect.php');
$sql = "SELECT * FROM LATLON WHERE DeviceID='".$id."'";
$r = mysqli_query($con,$sql);
while($row = $result->mysqli_fetch_array($r, MYSQLI_ASSOC)){
$array[] = $row;
}
echo json_encode($array);
mysqli_close($con);
}
?>
你的代碼是敞開的,以[SQL注入](https://en.wikipedia.org/wiki/SQL_injection)攻擊。永遠不要相信用戶輸入,包括你的例子中的'$ id'。不要通過將字符串粘在一起來構建SQL查詢,請閱讀[預處理語句](https://secure.php.net/manual/en/mysqli.prepare.php)。或者,[與PDO](https://secure.php.net/manual/en/pdo.prepared-statements.php)。 – Chris
哦!謝謝(你的)信息。這只是一個示例,但我肯定需要清理輸入! – Reid
你沒有收到錯誤信息嗎?它應該是'$ result-> fetch_array',而不是'$ result-> mysqli_fetch_array'。 – Barmar