Java 将数据从android发送到php

Java 将数据从android发送到php,java,php,android,Java,Php,Android,我需要帮助将数据从android发送到php。我有这个android的java代码 public void sendToDb() { ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("pLat",Double.toString(lat))); nameValuePa

我需要帮助将数据从android发送到php。我有这个android的java代码

public void sendToDb()
{
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("pLat",Double.toString(lat)));
    nameValuePairs.add(new BasicNameValuePair("pLng",Double.toString(lng)));

    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new      
                HttpPost("http://123456.com/welcome.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        Log.i("postData", response.getStatusLine().toString());
    }

    catch(Exception e)
    {
        Log.e("log_tag", "Error in http connection "+e.toString());
    }           
}
public void sendToDb()
{
ArrayList nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“pLat”,Double.toString(lat)));
nameValuePairs.add(新的基本nameValuePairs(“pLng”,Double.toString(lng)));
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新
HttpPost(“http://123456.com/welcome.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
Log.i(“postData”,response.getStatusLine().toString());
}
捕获(例外e)
{
e(“Log_标记”,“http连接错误”+e.toString());
}           
}
我在我的php文件夹中有这些代码

<?php
 $pLat = $_POST['pLat'];
 $pLng = $_POST['pLng'];

 $result = mysql_query("update Users set lat='$pLat',lon='$pLng' where username='ozi');      
 if (mysql_affected_rows()==0) 
   {
    $query = "INSERT INTO Users ";
    $query .= "(lat,lon) VALUES ('$pLat','$pLng')";
   }
 }
?>

在阅读了您的评论之后,您(我想)要做的是持久化数据。php文件除了运行您拥有的代码之外什么都不做。POST变量只有在请求中传递时才是活动的。请求来自Android应用程序以及POST变量,对Android应用程序的响应将具有正确的输出

来自浏览器的请求是“GET”,不发送pLat或pLng变量,因此没有要输出的变量

这是您必须掌握的HTTP的一个非常基本的概念

您要做的是将数据保存到某个位置。PHP可以通过将其保存到数据库(如MySQL)或简单地将POST变量输出到本地文件来实现这一点。快速的谷歌搜索可以告诉你如何保存文件和打开数据库。见鬼,你甚至可以通过电子邮件发送给自己


PHP脚本将只在脚本的生命周期中保存这些变量,然后将它们永远从内存中释放出来。您可以使用PHP的强大功能将这些变量保存到其他地方

我一眼就看出这里有些疯狂。当呼叫来自android设备时,为什么要指定
where username={$\u SESSION['username']}
?有几节课?此外,如果此操作失败,则插入时不使用用户名。但是永远不要运行查询

 if (mysql_affected_rows()==0) 
   {
    $query = "INSERT INTO Users ";
    $query .= "(username, lat,lon) VALUES ('ozi', '$pLat','$pLng')";
    mysql_query($query) or die(mysql_error()); // <---- this would need to be run
   }
 }
if(mysql\u受影响的\u行()==0)
{
$query=“插入用户”;
$query.=“(用户名、纬度、经度)值('ozi'、'$pLat'、'$pLng')”;

mysql\u query($query)或die(mysql\u error());//尝试使用
print\r($\u POST);
在PHP脚本中查看您实际获得的内容。刷新是什么意思?如果您从浏览器中刷新,您将看到一个空页面…始终如此。@Vinnie我的意思是如何看到这些内容?我认为可以使用ajax,但我不知道自动刷新的脚本。您试图在android应用程序中或其他地方看到它们吗@Vinnie在我刷新笔记本电脑上的页面后,我从Android手机发送了一个数据。我进行了更新。此外,请查看PDO。mysql_uuu非常不受欢迎。谢谢你的回答。以及你对上一篇文章的看法(链接到旧问题)这是有创意的,对吗?:)我认为真正的声誉永远不会是虚拟的。好吧,无论如何,这有帮助吗?我试过了,但mysql没有改变,然后我试过这样做;$pLat=“abc”$pLng=“def”但它不起作用,所以我的php代码有错误,我想,你对此有什么建议?