sql >> データベース >  >> RDS >> Mysql

JSONを介してAndroidからサーバーにデータを送信する

    サーバーにデータを送信するには、次のようにします。

    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ファイルは次のようになります。

    <?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()など。基本的に、クラスはストアドプロシージャのクラスと似ていました。



    1. ONDUPLICATEKEYを使用したプリペアドステートメント

    2. 名前にダッシュが含まれているテーブルに挿入します

    3. MySQLでEntityFrameworkウィザードがクラッシュする

    4. 複数の結果セットを持つexecでINSERTINTO