PHP没有更新mySQL数据库

时间:2012-11-30 04:02:29

标签: php android mysql json

我尝试通过我的php服务器从TripTracker Android App将位置数据添加到mysql数据库。这在PHP但它仍然无法正常工作。请帮帮我。 使用for循环,它会在数据库中创建一个空行。 当我删除它时,它根本不起作用。

<?php
    $json = $_GET['locations'];//get the post you sent...
    //$data = $_GET['locations'];
    $data = json_decode($json); //decode the json formatted string...
    $data = array();
    print_r($data);
    echo ($data);
    //foreach ($data as $x=>$loc){
    $loctime = $data->time;
    $latitude = $data->latitude;
    $longitude = $data->longitude;

    $con = mysql_connect("localhost","root","");
    if (!$con)
        die('Could not connect: ' . mysql_error());

    mysql_select_db("gpscoordinates", $con);
    $loctime = $_POST['time'];
    $latitude = $_POST['latitude'];
    $longitude = $_POST['longitude'];

    $sql = "INSERT INTO  `gpscoordinates`.`locations`
            (`id`, `loctime`, `latitude`, `longitude`)
            VALUES (NULL, '$loctime', '$latitude', '$longitude')";
    if (!mysql_query($sql,$con))
      die('Error: ' . mysql_error());

    mysql_close($con);
    //}
    //echo json_encode($variable);
?>

下面是一个工作的Rails等价物。

params[:locations].each do |x,loc|
    l = Tripcoord.new
    l.created_at = Time.at(loc[:time].to_i)
    l.latitude = loc[:latitude]
    l.longitude = loc[:longitude]
    l.save!
  end

1 个答案:

答案 0 :(得分:0)

您可以设置$ _POST数组中的值:

$loctime = $_POST['time'];
$latitude = $_POST['latitude'];
$longitude = $_POST['longitude'];

但你的数据来自$ _GET数组?

 $json = $_GET['locations'];

我错过了什么,因为这显然不起作用。

更改

$_GET['locations'] to $_POST['locations']

(反之亦然,视情况而定)。更不用说了,

$data = array();

如果$ _POST中有任何内容,则会清空这些值。

我希望我不会完全误解......