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;i
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循环的时候只循环一次罢了。
www.bkjia.comtrueTechArticleAndroid通过php连接百度云数据库 要用php对百度云数据库进行操作的话,都要先通过php文件连接到百度云,连接云数据库的php文件名是conn,内…