我的sql数据库连接到android

时间:2013-11-11 09:59:13

标签: android

我正在使用eclipse,我想将MySQL数据库连接到我的Android应用程序。我尝试在互联网上找到的一些编码,但在模拟器移动设备上没有显示结果。甚至没有显示任何错误。请一步一步回复我连接我的MySQL数据库。

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脚本是: -

     <?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();
  ?>

1 个答案:

答案 0 :(得分:0)

如果您想参考运行Android模拟器的计算机,请使用IP地址10.0.2.2代替localhost。您可以从here

了解更多信息

在您的代码中更改

http://localhost/hello/try.php

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