欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

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

程序员文章站 2024-01-14 15:13:28
...

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


要用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循环的时候只循环一次罢了。
相关标签: 数据库