Heim  >  Artikel  >  Backend-Entwicklung  >  Android通过php连接百度云数据库_PHP教程

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

WBOY
WBOYOriginal
2016-07-13 10:14:541167Durchsuche

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 &#39;UTF8&#39;");
mysql_query("set character_set_client=utf8");  
mysql_query("set character_set_results=utf8");
?>

用户登录:

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

<?php
include ("conn.php");
$id=str_replace(" ","",$_POST[&#39;id&#39;]);//id为登录账号
$pwd=str_replace(" ","",$_POST[&#39;pwd&#39;]);//pwe为登录密码
$sql="select * from User where Uid=&#39;$id&#39; and pwd=&#39;$pwd&#39;";
$query=mysql_query($sql);
$rs = mysql_fetch_array($query);

if(is_array($rs)){
	echo &#39;OK&#39;;
}else echo &#39;illegal user&#39;;

?>

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'。



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

Mbid:微博id

Mbuid:发表此微博的用户id

Mbcontent:微博内容

Mbtime:发表微博的时间

Mbnumzan:赞此微博的数目

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

那么php文件就是:

<?php
include ("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[&#39;Mbid&#39;];
	$Mbuid = $row[&#39;Mbuid&#39;];
	$Mbcontent = $row[&#39;Mbcontent&#39;];
	$Mbtime=$row[&#39;Mbtime&#39;];
	$Mbnumzan = $row[&#39;Mbnumzan&#39;];
	$Mbnumping = $row[&#39;Mbnumping&#39;];
	$nickname = $row[&#39;nickname&#39;];
	$iName = $row[&#39;iName&#39;];
	$picName = $row[&#39;picName&#39;];
	$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[&#39;Microblog&#39;]=$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请求,<span style="font-family: Arial, Helvetica, sans-serif;">取得HTTP response</span>

<span style="white-space:pre">		</span> &#160; &#160;<span style="white-space:pre">	</span>//若状态码为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中<span style="font-family: Arial, Helvetica, sans-serif;">$users[&#39;Microblog&#39;]=$user的Microblog名称一致</span>


			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;
	}
}


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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/907368.htmlTechArticleAndroid通过php连接百度云数据库 要用php对百度云数据库进行操作的话,都要先通过php文件连接到百度云,连接云数据库的php文件名是conn,内...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn