瑞当

瑞当科技
创新引领未来

android通过php连接mysql数据库!!!!

使用PHP作为中间介来实现android链接远程数据库。

 PHP代码:
<?php
mysql_connect("host","username","password");
mysql_select_db("PeopleData");
  $q=mysql_query("SELECT * FROM people WHERE birthyear>'".$_REQUEST['year']."'");while($e=mysql_fetch_assoc($q))
         $output[]=$e; 
print(json_encode($output)); 
mysql_close();
?>
 
android代码:
package lzu.ConnectMysql;
 
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
 
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
 
 
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
 
public class ConnectMysql extends Activity {
    /** Called when the activity is first created. */
private TextView result;
private String content;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        result = (TextView)findViewById(R.id.content);
 
        content = connecting();
 
        result.setText(content);
      //the year data to send
    }
 
    public String connecting(){
    /*存放http请求得到的结果*/
    String result = "";
    String ss = null;
   
    /*将要发送的数据封包 */
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("year","1980"));

       InputStream is = null;
        //http post
        try{
        /*创建一个HttpClient的一个对象*/
                HttpClient httpclient = new DefaultHttpClient();
 
                /*创建一个HttpPost的对象*/
                HttpPost httppost = new HttpPost("http://202.201.0.245/test.php");
 
                /*设置请求的数据*/
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
 
                /*创建HttpResponse对象*/
                HttpResponse response = httpclient.execute(httppost);
 
                /*获取这次回应的消息实体*/
                HttpEntity entity = response.getEntity();
 
                /*创建一个指向对象实体的数据流*/
                is = entity.getContent();
        }catch(Exception e){
               System.out.println("Connectiong Error");
        }
        //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");
                }
                is.close();
 
                result=sb.toString();
                System.out.println("get = " + result);
        }catch(Exception e){
               System.out.println("Error converting to String");
        }
 
        //parse json data
        try{
        /*从字符串result创建一个JSONArray对象*/
                JSONArray jArray = new JSONArray(result);
 
                for(int i=0;i<jArray.length();i++){
                        JSONObject json_data = jArray.getJSONObject(i);
                        System.out.println("Success");
                        System.out.println("result " + json_data.toString());
                        if( i == 0){
                        ss = json_data.toString();
                        }
                        else{
                        ss += json_data.toString();
                        }
                }
        }
        catch(JSONException e){
               System.out.println("Error parsing json");
        }
        return ss;
    } 
}