简体   繁体   中英

my sql database connect to android

i am using eclipse and i want to connect MySQL database to my android application. i try some coding which found on internet but no result is shown on emulator mobile device. even no any error is shown. please reply me in step by step procedure to connect the my MySQL database.

public class MainActivity extends Activity {

        TextView resultview;
        private InputStream is;

        @SuppressLint("NewApi")
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            resultview=(TextView) findViewById(R.id.resultview);
        }

        public void getData() {
           String result = "";
            //the year data to send
            ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("name","suman"));

            //http post
            try {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://localhost/hello/try.php");
                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost); 
                    HttpEntity entity = response.getEntity();
                    is = entity.getContent();

                    Log.e("log_tag", "connection success ");
                    Toast.makeText(getApplicationContext(), "pass", Toast.LENGTH_SHORT).show();
            } catch(Exception e) {
                    Log.e("log_tag", "Error in http connection "+e.toString());
                    Toast.makeText(getApplicationContext(), "Connection fail", Toast.LENGTH_SHORT).show();
            }
            //convert response to string
            try {
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
                    StringBuilder sb = new StringBuilder();
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                            sb.append(line + "\n");
                            Toast.makeText(getApplicationContext(), "Input Reading pass", Toast.LENGTH_SHORT).show();
                    }
                    is.close();

                    result=sb.toString();
            } catch(Exception e) {
                   Log.e("log_tag", "Error converting result "+e.toString());
                Toast.makeText(getApplicationContext(), " Input reading fail", Toast.LENGTH_SHORT).show();
            }

            //parse json data
            try {
                JSONArray jArray = new JSONArray(result);

                for(int i=0;i<jArray.length();i++){
                       JSONObject json_data = jArray.getJSONObject(i);
                        Log.i("log_tag","id: "+json_data.getInt("id")+
                                ", Name: "+json_data.getString("name")+
                                ", Address: "+json_data.getInt("address")+
                                ", Contact: "+json_data.getInt("contact")
                        );
                        Toast.makeText(getApplicationContext(), "JsonArray pass", Toast.LENGTH_SHORT).show();
               }
            } catch(JSONException e) {
                    Log.e("log_tag", "Error parsing data "+e.toString());
                    Toast.makeText(getApplicationContext(), "JsonArray fail", Toast.LENGTH_SHORT).show();
            }
        }
    }

php script is:-

     <?php
   mysql_connect("localhost","root");
    mysql_select_db("test");

   $q=mysql_query("SELECT * FROM tbl_user");
   while($e=mysql_fetch_assoc($q))
    $output[]=$e;

  print(json_encode($output));

  mysql_close();
  ?>

If you want to refer to the computer which is running the Android simulator, use the IP address 10.0.2.2 instead localhost . You can read more from here

In your code change from

http://localhost/hello/try.php

to

http://ip address/hello/try.php

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM