gpt4 book ai didi

php - 通过android使用php更新mysql数据库

转载 作者:行者123 更新时间:2023-11-29 22:22:40 25 4
gpt4 key购买 nike

我正在尝试使用 android 应用程序中的 php 更新 mysql 数据库。我已经成功地能够使用我在这里找到的本教程更新数据库并从数据库返回数据:http://www.helloandroid.com/tutorials/connecting-mysql-database

我现在正在尝试使用位置提供程序更新数据库,以获取我通过 onLocationChanged 回调获取的位置修复的纬度和经度。我的代码如下所示:

public void onLocationChanged(Location location) { 


double myLonDouble = location.getLongitude();
String myLon = Double.toString(myLonDouble);
double myLatDouble = location.getLatitude();
String myLat = Double.toString(myLatDouble);

sp = getSharedPreferences("MyPrefsFile", 0);
id = sp.getInt("id", 0);
String idString = Integer.toString(id);


DatabaseConnector db = new DatabaseConnector();

ArrayList<NameValuePair> latLon = new ArrayList<NameValuePair>();
latLon.add(new BasicNameValuePair("longitude", myLon));
latLon.add(new BasicNameValuePair("latitude", myLat));
latLon.add(new BasicNameValuePair("id", idString));
tv.setText(idString);
db.dbConnect(latLon, php);

将我的数据发送到 php 文件的 dbConnect 方法如下所示:

public void dbConnect(ArrayList<NameValuePair>  data, String phpFile) {

InputStream is = null;


try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(phpFile);
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();


}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}


}// end dbConnect

我在 httppost 对象中使用的 php 文件如下所示:

>><?php
>>$con = mysql_connect("localhost","********","*********");
>>if (!$con)
>> {
>> die('Could not connect: ' . mysql_error());
>> }
>>
>>mysql_select_db("swizzle_practice", $con);
>>
>>$_SQL =
>>"UPDATE users
>>SET longitude = '$_REQUEST[longitude]', latitude = '$_REQUEST[latitude]'
>>WHERE id = '$_REQUEST[id]'";
>>
>>mysql_query($_SQL,$con) or die("error: " . mysql_error());
>>
>>mysql_close($con)
>>?>

我的 list 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.first_screen"
android:versionCode="1"
android:versionName="1.0">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<uses-sdk android:minSdkVersion="7" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
<uses-library android:name="com.google.android.maps" />

<activity android:name=".First_screenActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".Setup"
android:label="@string/app_name">
</activity>

<activity android:name=".Map"
android:label="@string/app_name">
</activity>



</application>
</manifest>

我在日志中没有收到任何错误,这让我认为这是我在dbConnect 方法是错误的。我查看了它,似乎找不到我做错了什么。

如果您能提供任何帮助,我们将不胜感激。

路易斯

最佳答案

添加'$_REQUEST['longitude']',现在怎么样了?记录 nameValuePairs 以检查对值是否正确。

$_SQL = 
"UPDATE users
SET longitude = '$_REQUEST['longitude']', latitude = '$_REQUEST['latitude']'
WHERE id = '$_REQUEST['id']';";

P.S:我建议使用手动输入的值测试您的 PHP 代码和查询。而且您不需要 response 因为您在发送键值对后正在执行与您的应用程序无关的操作,即您的查询不获取任何数据。你可以拥有它,你可以用它来输出你的查询是否完成了工作。

关于php - 通过android使用php更新mysql数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com