转自:http://blog.csdn.net/xiaoxiaobian3310903/article/details/6257237

使用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;

}

}

更多相关文章

  1. 类和 Json对象
  2. Android(安卓)with the NDK_001
  3. android地图,判断坐标是否在你要求的范围内
  4. Call的作用
  5. android通过php连接mysql数据库!!!!
  6. Android中的Bundle类
  7. 从java内存分配角度分析android内存泄漏问题
  8. SharedPreferences
  9. Android(安卓)系统广播机制

随机推荐

  1. 使用ng-repeat-start和ng-repeat-end与嵌
  2. JavaScript中的数学对象中的方法
  3. 用于Internet Explorer的javaScript中的i
  4. BootStrap3.0学习--JavaScript 插件
  5. 关于洗牌算法的错误认识
  6. Javascript知识汇总------面向对象中继承
  7. 在关联数组中移动元素[重复]
  8. 对JavaScript优化及规范的一些感想
  9. 键盘出现时,UIWebView滚动。导致点击偏移
  10. 我如何捕获并插入Meteor.Error警报从Mete