• 冒险村物语
  • 英雄无敌3塔防
  • 驾考家园手游

Android通过php连接百度云数据库

2015-05-27


要用php对百度云数据库进行操作的话,都要先通过php文件连接到百度云,连接云数据库的php文件名是conn,内容如下:


用户登录:

php文件,其中User表是在百度云数据库中创建的。


Android程序中需要传入账号和密码并且账号和密码都要与php中的一致都是id和pwd。
ArrayList list=new ArrayList();		list.add(new BasicNameValuePair("id", et_accounts.getText().toString()));		list.add(new BasicNameValuePair("pwd", et_password.getText().toString()));		String flag=CloudConnection.gotoLogin(loginuri, list);

如果登录成功那么flag的值为‘OK’,否则flag为'illegal user'。



多条查询,例如从云数据库中查找表中所有的微博,表的字段为:

Mbid:微博id

Mbuid:发表此微博的用户id

Mbcontent:微博内容

Mbtime:发表微博的时间

Mbnumzan:赞此微博的数目

Mbnumping:评论此微博的数目
picName:发表的图片的名字

那么php文件就是:

 $Mbid ,			Mbuid => $Mbuid,			Mbcontent =>$Mbcontent,			Mbtime => $Mbtime,			Mbnumzan => $Mbnumzan,			Mbnumping => $Mbnumping,			nickname=> $nickname,			iName=>$iName,			picName=>$picName	);	array_push($user,$ary);}$users['Microblog']=$user;echo json_encode($users);?>

因为php返回的是一个对象数组,所以要对php中从云数据库获得的数据进行解析,解析之后的数据存在list中。

public class Microblog_DB {	String sendUri="https://oursvn.duapp.com/query_microblog.php";//sendUri为你php文件的路径	public List> getData() {		List> list=new ArrayList>();		StringBuilder builder = new StringBuilder();		HttpPost httpRequest = new HttpPost(sendUri);		try{			HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);//发出HTTP请求,取得HTTP response		    	//若状态码为200则请求成功,取到返回数据			BufferedReader reader = new BufferedReader(new InputStreamReader(					httpResponse.getEntity().getContent()));			for (String s = reader.readLine(); s != null; s = reader.readLine()) {				builder.append(s);			}			String jsonString = builder.toString();			jsonString = jsonString.substring(jsonString.indexOf("{"),jsonString.lastIndexOf("}")+1);			JSONObject jsonObject = new JSONObject(jsonString);			JSONArray jsonArray = jsonObject.getJSONArray("Microblog");//Microblog要去php中$users['Microblog']=$user的Microblog名称一致			for(int i=0;imap = new HashMap();				map.put("zan",R.drawable.zan);				map.put("ping",R.drawable.ping);				map.put("head",R.drawable.tou12 );				map.put("nickname", nickname);				map.put("content", Mbcontent);				map.put("sendtime", Mbtime);				map.put("zannum", Mbnumzan);				map.put("pingnum", Mbnumping);				map.put("mbid", String.valueOf(Mbid));				list.add(map);			}		}catch(Exception e){			e.printStackTrace();		}		return list;	}}


如果是一条查询而不是多条查询,那么可以也可以利用多条查询的方法来实现,只不过for循环的时候只循环一次罢了。


(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)

人气推荐

知识阅读

精彩推荐

  • 游戏
  • 软件
查看更多>>