PHP中的简单Web服务,Get方法

时间:2016-05-09 18:00:49

标签: php mysql json wikitude

我正在尝试开发一个简单的Web服务,它为我的Wikitude增强现实应用程序提供数据。数据将作为JSON提供,并将从MYSQL数据库中检索。到目前为止,我能够连接到我的数据库并以JSON格式获取数据。

但是,我需要进一步开发它以发出HTTP Get Method请求。这是我的PHP脚本

<?PHP
    //open connection to mysql db
    $connection = mysqli_connect("localhost","root","","tutorial") or die("Error " . mysqli_error($connection));

    //fetch table rows from mysql db
    $getData = "select * from places";
    $qur = $connection->query($getData);

    while($r = mysqli_fetch_assoc($qur)){

    $msg[] = array("id" => $r['id'], "longitude" => $r['longitude'], "latitude" => $r['latitude'], "description" => $r['description'], "name" => $r['name']);
    }
    $json = $msg;

    header('content-type: application/json');
    echo json_encode($json);

    @mysqli_close($conn);
 ?>

目前,如果我发出实例请求为
http://localhost/json_internet2.php?longitude=13.88345结果是数据库中的所有数据。因此,它无法正常工作。

我该如何继续这个?任何帮助都是有益的。

由于

1 个答案:

答案 0 :(得分:0)

假设您的数据库有一个“经度”列,您需要修改SQL查询以考虑GET变量(示例中的经度)并使用它来过滤掉结果。

示例:

//open connection to mysql db
$connection = mysqli_connect("localhost","root","","tutorial") or die("Error " . mysqli_error($connection));

//fetch table rows from mysql db
$getData = "select * from places";

if(isset($_GET['longitude']) && !empty($_GET['longitude'])){
   $longitude = mysqli_real_escape_string($_GET['longitude']);
    $getData = "select * from places WHERE longitude = '$longitude' ";    
 }

$qur = $connection->query($getData);

while($r = mysqli_fetch_assoc($qur)){

$msg[] = array("id" => $r['id'], "longitude" => $r['longitude'], "latitude" => $r['latitude'], "description" => $r['description'], "name" => $r['name']);
}
$json = $msg;

header('content-type: application/json');
echo json_encode($json);

@mysqli_close($conn);

这超出了本问题的范围,但请注意,对于安全问题,您应该使用PDO和预处理语句。更多信息:http://php.net/manual/en/pdo.prepared-statements.php