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表是在百度云数据库中创建的。
<?php include ("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'。
多条查询,例如从云数据库中查找表中所有的微博,表的字段为:
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['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请求,<span style="font-family: Arial, Helvetica, sans-serif;">取得HTTP response</span> <span style="white-space:pre"> </span>    <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['Microblog']=$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; } }

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

在PHP中,trait適用於需要方法復用但不適合使用繼承的情況。 1)trait允許在類中復用方法,避免多重繼承複雜性。 2)使用trait時需注意方法衝突,可通過insteadof和as關鍵字解決。 3)應避免過度使用trait,保持其單一職責,以優化性能和提高代碼可維護性。

依賴注入容器(DIC)是一種管理和提供對象依賴關係的工具,用於PHP項目中。 DIC的主要好處包括:1.解耦,使組件獨立,代碼易維護和測試;2.靈活性,易替換或修改依賴關係;3.可測試性,方便注入mock對象進行單元測試。

SplFixedArray在PHP中是一種固定大小的數組,適用於需要高性能和低內存使用量的場景。 1)它在創建時需指定大小,避免動態調整帶來的開銷。 2)基於C語言數組,直接操作內存,訪問速度快。 3)適合大規模數據處理和內存敏感環境,但需謹慎使用,因其大小固定。

PHP通過$\_FILES變量處理文件上傳,確保安全性的方法包括:1.檢查上傳錯誤,2.驗證文件類型和大小,3.防止文件覆蓋,4.移動文件到永久存儲位置。

JavaScript中處理空值可以使用NullCoalescingOperator(??)和NullCoalescingAssignmentOperator(??=)。 1.??返回第一個非null或非undefined的操作數。 2.??=將變量賦值為右操作數的值,但前提是該變量為null或undefined。這些操作符簡化了代碼邏輯,提高了可讀性和性能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。