问题描述
- 我有 MySQL 数据库服务器
- 我需要通过 JSON 向/从 MySQL 服务器更新和检索数据
所以,我想知道如何做到这一点,但我对这个示例语句很困惑:
So, I want to know how to do that, and I pretty confuse with this example statement:
HttpPost httppost = new HttpPost("http://10.0.2.2/city.php");
这意味着我需要编写与 PHP 服务器连接的应用程序之前写php连接数据库对吗?
This means I need to code my application that connect with PHP serverbefore write php to connect to DB right ?
推荐答案
要将数据发送到服务器,您可以这样做:
To send data to server you could do this:
private void sendData(ArrayList<NameValuePair> data)
{
// 1) Connect via HTTP. 2) Encode data. 3) Send data.
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://www.blah.com/AddAccelerationData.php");
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = httpclient.execute(httppost);
Log.i("postData", response.getStatusLine().toString());
//Could do something better with response.
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
}
然后发送让我们说:
private void sendAccelerationData(String userIDArg, String dateArg, String timeArg,
String timeStamp, String accelX, String accelY, String accelZ)
{
fileName = "AddAccelerationData.php";
//Add data to be send.
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(7);
nameValuePairs.add(new BasicNameValuePair("userID", userIDArg));
nameValuePairs.add(new BasicNameValuePair("date",dateArg));
nameValuePairs.add(new BasicNameValuePair("time",timeArg));
nameValuePairs.add(new BasicNameValuePair("timeStamp",timeStamp));
nameValuePairs.add(new BasicNameValuePair("accelX",accelX));
nameValuePairs.add(new BasicNameValuePair("accelY",accelY));
nameValuePairs.add(new BasicNameValuePair("accelZ",accelZ));
this.sendData(nameValuePairs);
}
那么服务器上的 AddAccelerationData.php 文件是:
so then the AddAccelerationData.php file on server is:
<?php
/*
* What this file does is it:
* 1) Creates connection to database.
* 2) Retrieve the data being send.
* 3) Add the retrieved data to database 'Data'.
* 4) Close database connection.
*/
require_once '../Connection.php'; //connect to a database/disconnect handler.
require_once '../SendAPI.php'; //deals with sending querys.
$server = new Connection();
$send = new Send();
//Connect to database.
$server->connectDB();
//Retrieve the data.
$userID = $_POST['userID'];
$date = $_POST['date'];
$time = $_POST['time'];
$accelX = $_POST['accelX'];
$accelY = $_POST['accelY'];
$accelZ = $_POST['accelZ'];
//Add data to database 'Data'. //Personal method to query and add to database.
$send->sendAccelerationData($userID, $date, $time, $timeStamp, $accelX, $accelY, $accelZ);
//Disconnect from database.
$server->disconnectDB();
?>
这是我最近使用的一个例子.只是在php文件中注意.我导入 Connection.php这只是处理与数据库的连接.因此,只需将其替换为连接到 MYSQL 数据库的代码即可.我还导入了 SendAPI.php(你可以忽略它)这只是我发送数据的类.基本上它包含了一些我想使用的查询.如sendAccelerationData().基本上类类似于存储过程.
This is an example I used recently. Just to note in the php file. I import Connection.phpthis just deals with the connection to the database. So just replace that with your code for connecting to MYSQL db. Also I imported SendAPI.php (which you can just ignore)This was just my class for sending data. Basically it contained some of the querys I wanted to use. Such as sendAccelerationData(). Basically class was similar to that of stored procedures.
这篇关于通过JSON将数据从android发送到服务器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!