Android通过php连接百度云数据库
来源:互联网 发布:网络十大神曲 编辑:程序博客网 时间:2024/05/17 21:06
要想通过Android程序直接连接百度云数据库是不行的,必须通过php来进行连接。
要用php对百度云数据库进行操作的话,都要先通过php文件连接到百度云,连接云数据库的php文件名是conn,内容如下:
<?php//echo "这是php数据库访问层!";$dbhost = "sqld.duapp.com:4050"; $dbuser = ""; //我的用户名 $dbpass = ""; //我的密码 $dbname = ""; //我的mysql库名 $cn = mysql_connect($dbhost,$dbuser,$dbpass) or die("connect error");@mysql_select_db($dbname)or die("db error");mysql_query("set names 'UTF8'");mysql_query("set character_set_client=utf8"); mysql_query("set character_set_results=utf8");?>
用户登录:
php文件,其中User表是在百度云数据库中创建的。
<?phpinclude ("conn.php");$id=str_replace(" ","",$_POST['id']);//id为登录账号$pwd=str_replace(" ","",$_POST['pwd']);//pwe为登录密码$sql="select * from User where Uid='$id' and pwd='$pwd'";$query=mysql_query($sql);$rs = mysql_fetch_array($query);if(is_array($rs)){echo 'OK';}else echo 'illegal user';?>
Android程序中需要传入账号和密码并且账号和密码都要与php中的一致都是id和pwd。
ArrayList<BasicNameValuePair> list=new ArrayList<BasicNameValuePair>();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'。
这个是CloudConnection类:
@SuppressWarnings("deprecation")public class CloudConnection {public static String gotoLogin(String connectUrl,List<BasicNameValuePair>list) {String result = "";HttpPost httpRequest = new HttpPost(connectUrl);//Post运作传送变数必须用NameValuePair[]阵列储存try{//发出HTTP请求httpRequest.setEntity(new UrlEncodedFormEntity(list,HTTP.UTF_8));//取得HTTP responseHttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);//若状态码为200则请求成功,取到返回数据if(httpResponse.getStatusLine().getStatusCode()==200){//取出字符串result=EntityUtils.toString(httpResponse.getEntity(),"UTF-8");System.out.println("result= "+result);}else System.out.println("StatusCode=="+httpResponse.getStatusLine().getStatusCode());}catch(Exception e){e.printStackTrace();}return result;}}
多条查询,例如从云数据库中查找表中所有的微博,表的字段为:
Mbid:微博id
Mbuid:发表此微博的用户id
Mbcontent:微博内容
Mbtime:发表微博的时间
Mbnumzan:赞此微博的数目
Mbnumping:评论此微博的数目
picName:发表的图片的名字
那么php文件就是:
<?phpinclude ("conn.php");//连接数据库$sql="SELECT * FROM Microblog,User where Microblog.Mbuid=User.Uid";$rs=mysql_query($sql);$user = array();while($row = mysql_fetch_array($rs)){$Mbid = $row['Mbid'];$Mbuid = $row['Mbuid'];$Mbcontent = $row['Mbcontent'];$Mbtime=$row['Mbtime'];$Mbnumzan = $row['Mbnumzan'];$Mbnumping = $row['Mbnumping'];$nickname = $row['nickname'];$iName = $row['iName'];$picName = $row['picName'];$ary = array( Mbid => $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<Map<String, Object>> getData() {List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();StringBuilder builder = new StringBuilder();HttpPost httpRequest = new HttpPost(sendUri);try{HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);//发出HTTP请求,取得HTTP //若状态码为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<jsonArray.length();i++){JSONObject jsonObject1 =(JSONObject) jsonArray.get(i);int Mbid= jsonObject1.getInt("Mbid");String Mbuid= jsonObject1.getString("Mbuid");String Mbcontent= jsonObject1.getString("Mbcontent");String Mbtime= jsonObject1.getString("Mbtime").toString().substring(5, 16);String Mbnumzan= jsonObject1.getString("Mbnumzan");String Mbnumping= jsonObject1.getString("Mbnumping");String nickname=jsonObject1.getString("nickname");String iName=jsonObject1.getString("iName");//头像名称String picName=jsonObject1.getString("picName");//图片名称Map<String, Object>map = new HashMap<String, Object>();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;}}
0 0
- Android通过php连接百度云数据库
- android通过php连接mysql数据库!!!!
- Android连接百度云数据库demo
- Android通过PHP连接MySQL数据库(插入)
- php通过mysqli连接数据库
- Android 通过PHP连接Mysql
- Android通过Webservice连接数据库
- Android程序通过Apache服务器执行PHP程序连接Mysql数据库(重要!)
- javascript连接mysql与php通过odbc连接任意数据库
- Android通过PHP连接MySQL(读取)
- Android通过PHP连接MySQL(读取)
- Android通过PHP连接MySQL(读取)
- Android通过PHP连接MySQL(读取)
- Android通过PHP连接MySQL(读取)
- 通过PHP连接MYSQL数据库 创建数据库 创建表
- Android通过jsp连接Oracle数据库 -- 实例
- Android通过webservice连接sqlserver数据库
- android通过.net连接远程pc数据库
- 软件测试
- res与res-auto的区别
- ZOJ 2595 Ackerman's Function
- android4.0调用http接口,并解析JSON更新控件
- 英语学习 1
- Android通过php连接百度云数据库
- 杭电3371——————MST的简单变形
- 哈夫曼树
- 小马Linux 之 虚拟机环境下(redhat5.8)制作微型linux系统
- 五个linux查找命令
- UITextField详解
- 折半插入排序
- Eclipse编程之旅:Shell入门(1)
- Oracle数据库中行数的表达rownum