Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

Android ऐप पर डेटा पुश करें

AsyncTask Android द्वारा प्रदान किया गया एक अमूर्त वर्ग है जो हमें UI थ्रेड का ठीक से उपयोग करने में मदद करता है। यह वर्ग हमें लंबे/पृष्ठभूमि संचालन करने और थ्रेड में हेरफेर किए बिना UI थ्रेड पर अपना परिणाम दिखाने की अनुमति देता है।

आप अपनी वेब सेवाओं को कॉल करने के लिए AsyncTask का उपयोग कर सकते हैं:

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

अब, LongOperation . का ऑब्जेक्ट बनाकर webservice कॉल करें क्लास,

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

PHP में आपको इस प्रकार लिखना चाहिए:

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

आप इसे और अधिक सुरक्षित बनाने के लिए webservice को पैरामीटर पास करने के लिए POST विधि का उपयोग कर सकते हैं। :)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL के लिए सर्वोत्तम अभ्यास प्रश्न:आईडी या तिथि के अनुसार आदेश?

  2. MySQL C API का उपयोग करना - तैयार कथनों का उपयोग करके पंक्तियों को सम्मिलित करने की सफलता की जाँच करें

  3. कॉलम/मानों की अधिकतम संख्या जिन्हें आप किसी तालिका में सम्मिलित कर सकते हैं - mysql

  4. 2GB सीमा से अधिक SQL सर्वर एक्सप्रेस विकल्प

  5. मैं MySQL में टिप्पणियाँ कैसे जोड़ सकता हूँ?