Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wysyłaj dane z Androida na serwer przez JSON

Aby wysłać dane na serwer, możesz to zrobić:

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());
    }  
}

następnie wysłać powiedzmy:

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);
}

więc plik AddAccelerationData.php na serwerze to:

<?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();
?>

To jest przykład, którego użyłem ostatnio. Wystarczy zauważyć w pliku php. Importuję Connection.php, zajmuje się to tylko połączeniem z bazą danych. Więc po prostu zastąp to swoim kodem do łączenia się z bazą danych MYSQL. Zaimportowałem też SendAPI.php (który możesz po prostu zignorować) To była tylko moja klasa do wysyłania danych. Zasadniczo zawierał niektóre zapytania, których chciałem użyć. Takich jak sendAccelerationData(). Zasadniczo klasa była podobna do procedur składowanych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. utf-8 vs latin1

  2. PDOException „nie można znaleźć sterownika”

  3. kolejność php mysql według sygnatury czasowej jest nieprawidłowa

  4. SQL Return 1,0 w nowej zmiennej na podstawie przypadku, gdy instrukcja odnosi się do wielu innych zmiennych

  5. Czy potrzebuję połączenia php mysql w każdej funkcji korzystającej z bazy danych?