Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Dorong data ke aplikasi android

AsyncTask adalah kelas abstrak yang disediakan oleh Android yang membantu kita menggunakan utas UI dengan benar. Kelas ini memungkinkan kita untuk melakukan operasi panjang/latar belakang dan menampilkan hasilnya di thread UI tanpa harus memanipulasi thread.

Anda dapat menggunakan AsyncTask untuk memanggil layanan web Anda:

private class LongOperation extends AsyncTask<String, Void, String> {

    @Override
    protected String doInBackground(String... params) {
            try {
                //call your webservice to perform MySQL database opration
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                    .permitAll().build();
                StrictMode.setThreadPolicy(policy);
                HttpClient httpclient = new DefaultHttpClient();
                HttpGet httpget = new Http Get("http://yourserver.com/webservices/service.php?id="
                    + URLEncoder.encode("record_id") +"&param1="
                    + URLEncoder.encode("param1 value") + "&param2="+ URLEncoder.encode("param2 value"));

                HttpResponse response = httpclient.execute(httpget);
                final String str=EntityUtils.toString(response.getEntity());

                myjson = new JSONObject(str);
                //perform JSON parsing to get webservice result.
                if (myjson.has("success") == true) {
                    //Updation is succesful

                } else {
                    //failed to perform updation

                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        return "Executed";
    }

    @Override
    protected void onPostExecute(String result) {
        // This will be executed after completion of webservice call. and `String result` will have returned value from doInBackground()
        // might want to change "executed" for the returned string passed
        // into onPostExecute() but that is upto you

    }

    @Override
    protected void onPreExecute() {}

    @Override
    protected void onProgressUpdate(Void... values) {}
}

sekarang, lakukan panggilan layanan web dengan membuat objek LongOperation kelas,

LongOperation webCall = new LongOperation();
webCall.execute();

di PHP Anda harus menulis sebagai berikut:

<?php

//DB Connection code:
$dbhost = "server";
$dbuser = "user_name";
$dbpassword = "pass";
$database = "your_db";

// connect to the database
$db = mysql_connect($dbhost, $dbuser, $dbpassword) or die("Connection Error: ".mysql_error());
mysql_select_db($database, $db) or die("Error conecting to db.");

header("Content-type: text/json");

if (!isset($_GET['id']) || $_GET['id'] == "" ||!isset($_GET['param1']) || $_GET['param1'] == "" || !isset($_GET['param2']) || $_GET['param2'] == "" ){
    echo json_encode(array('error' => 'Required arguments missing.'));
    exit;
}
$id = mysql_real_escape_string($_GET['id']); //escape string to prevent SQL injection attack.
$param1 = mysql_real_escape_string($_GET['param1']);
$param2 = mysql_real_escape_string($_GET['param2']);

$sql = "update your_table set param1='$param1',param2='$param2' where id=$id";

mysql_query($sql);

if (mysql_affected_rows()==1) {
    echo json_encode(array('success' => "updated"));
}else{
    echo json_encode(array('error' => "not updated"));
}
?>

Anda dapat menggunakan metode POST untuk meneruskan parameter ke layanan web agar lebih aman. :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skema basis data untuk mengirim pesan ke banyak pengguna

  2. Batas ukuran MySQL VARCHAR

  3. Apakah ada cara untuk mendapatkan id terakhir yang dimasukkan dari NON - kolom yang bertambah otomatis di MySQL?

  4. Bagaimana cara MySQL menyimpan data?

  5. Mysql_real_escape_string() Tautan ke server tidak dapat dibuat