Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đẩy dữ liệu vào ứng dụng android

AsyncTask là một lớp trừu tượng do Android cung cấp giúp chúng ta sử dụng chuỗi giao diện người dùng đúng cách. Lớp này cho phép chúng tôi thực hiện các hoạt động dài / nền và hiển thị kết quả của nó trên chuỗi giao diện người dùng mà không cần phải thao tác các chuỗi.

Bạn có thể sử dụng AsyncTask để gọi các dịch vụ web của mình:

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

bây giờ, thực hiện lệnh gọi dịch vụ web bằng cách tạo đối tượng của LongOperation lớp học,

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

trong PHP, bạn nên viết như sau:

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

Bạn có thể sử dụng phương thức POST để chuyển các tham số cho webservice để làm cho nó an toàn hơn. :)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tổng quan về PostgreSQL &MySQL Cross Replication

  2. MySQL có hỗ trợ kế thừa bảng không?

  3. SailsJS và tên ID tùy chỉnh mySQL không hoạt động với bản in màu xanh lam

  4. 1045, Quyền truy cập bị từ chối đối với người dùng 'tên người dùng' @ 'KHÔNG cục bộ' (sử dụng mật khẩu:CÓ)

  5. tạo bảng quan hệ trong mysql