真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

安卓與php數(shù)據(jù)庫操作,安卓php集成環(huán)境

怎么連接android和php mysql數(shù)據(jù)庫

如何連接android和php mysql數(shù)據(jù)庫

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、成都網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團(tuán)企業(yè)網(wǎng)站制作等服務(wù)項目。核心團(tuán)隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:隧道混凝土攪拌車等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊賞!

我們先來看一個簡單的Android app例子(這里是一個商品存貨清單項目),在Android程序中,我們可以訪問(call)PHP腳本來執(zhí)行簡單的CRUD操作(創(chuàng)建,讀取,更新,刪除)。為了使你對它的體系結(jié)構(gòu)有一個大概的了解,這里先說一下它是怎么工作的。首先你的Android項目訪問(call)PHP腳本來執(zhí)行一條數(shù)據(jù)操作,我們稱它為“創(chuàng)建”。然后PHP腳本連接MySQL數(shù)據(jù)庫來執(zhí)行這個操作。這樣,數(shù)據(jù)從Android程序流向PHP腳本,最終存儲在MySQL數(shù)據(jù)庫中。

好了,讓我們來深入的看一下。

請注意:這里提供的代碼只是為了使你能簡單的連接Android項目和PHP,MySQL。你不能把它作為一個標(biāo)準(zhǔn)或者安全編程實踐。在生產(chǎn)環(huán)境中,理想情況下你需要避免使用任何可能造成潛在注入漏洞的代碼(比如MYSQL注入)。MYSQL注入是一個很大的話題,不可能用單獨(dú)的一篇文章來說清楚,并且它也不在本文討論的范圍內(nèi),所以本文不以討論。

1. 什么是WAMP Server

WAMP是Windows,Apache,MySQL和PHP,Perl,Python的簡稱。WAMP是一個一鍵安裝的軟件,它為開發(fā)PHP,MySQL Web應(yīng)用程序提供一個環(huán)境。安裝這款軟件你相當(dāng)于安裝了Apache,MySQL和PHP?;蛘?,你也可以使用XAMP。

2. 安裝和使用WAMP Server

你可以從下載WAMP,安裝完成之后,可以從開始-所有程序-WampServer-StartWampServer運(yùn)行該程序。

在瀏覽器中輸入來測試你的服務(wù)器是否安裝成功。同樣的,也可以打開來檢驗phpmyadmin是否安裝成功。

3. 創(chuàng)建和運(yùn)行PHP項目

現(xiàn)在,你已經(jīng)有一個能開發(fā)PHP和MYSQL項目的環(huán)境了。打開安裝WAMP Server的文件夾(在我的電腦中,是C:\wamp\),打開www文件夾,為你的項目創(chuàng)建一個新的文件夾。你必須把項目中所有的文件放到這個文件夾中。

新建一個名為android_connect的文件夾,并新建一個php文件,命名為test.php,嘗試輸入一些簡單的php代碼(如下所示)。輸入下面的代碼后,打開,你會在瀏覽器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果沒有正確輸入,請檢查WAMP配置是否正確)

test.php

4. 打開MainScreenActivity.java為main_screen.xml文件里的兩個按鈕添加點擊事件

MainScreenActivity.java

7. 添加一個新產(chǎn)品(寫入)

創(chuàng)建一個新的view和activity來向MySQL數(shù)據(jù)庫添加新產(chǎn)品。

新建一個簡單的表單,創(chuàng)建提供輸入產(chǎn)品名稱,價格和描述的EditText

add_product.xml

8. 新建一個Activity來處理向MySQL數(shù)據(jù)庫插入新產(chǎn)品。

新建名為NewProductActivity.java的文件,輸入以下代碼。在下面的代碼中

首先,從EditText獲得用戶輸入的產(chǎn)品數(shù)據(jù),格式化成基本參數(shù)格式

然后,向create_product.php發(fā)送請求,通過HTTP POST創(chuàng)建一個新的產(chǎn)品

最后,從create_product.php獲取json返回值,如果success值為1,新得到的列表中就加入了新增的產(chǎn)品。

NewProductActivity.java

11. JSONParser類

我用一個JSONParser類從URL獲得JSON格式的數(shù)據(jù)。這個類支持兩種http請求,GET和POST方法從URL獲取JSON數(shù)據(jù)

JSONParser.java

packagecom.example.androidhive; importjava.io.BufferedReader; importjava.io.IOException; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.UnsupportedEncodingException; importjava.util.List; importorg.apache.http.HttpEntity; importorg.apache.http.HttpResponse; importorg.apache.http.NameValuePair; importorg.apache.http.client.ClientProtocolException; importorg.apache.http.client.entity.UrlEncodedFormEntity; importorg.apache.http.client.methods.HttpGet; importorg.apache.http.client.methods.HttpPost; importorg.apache.http.client.utils.URLEncodedUtils; importorg.apache.http.impl.client.DefaultHttpClient; importorg.json.JSONException; importorg.json.JSONObject; importandroid.util.Log; publicclassJSONParser { staticInputStream is = null; staticJSONObject jObj = null; staticString json = ""; // constructor publicJSONParser() { } // function get json from url // by making HTTP POST or GET mehtod publicJSONObject makeHttpRequest(String url, String method, ListNameValuePair params) { // Making HTTP request try{ // check for request method if(method == "POST"){ // request method is POST // defaultHttpClient DefaultHttpClient httpClient = newDefaultHttpClient(); HttpPost httpPost = newHttpPost(url); httpPost.setEntity(newUrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); }elseif(method == "GET"){ // request method is GET DefaultHttpClient httpClient = newDefaultHttpClient(); String paramString = URLEncodedUtils.format(params, "utf-8"); url += "?"+ paramString; HttpGet httpGet = newHttpGet(url); HttpResponse httpResponse = httpClient.execute(httpGet); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } } catch(UnsupportedEncodingException e) { e.printStackTrace(); } catch(ClientProtocolException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); } try{ BufferedReader reader = newBufferedReader(newInputStreamReader( is, "iso-8859-1"), 8); StringBuilder sb = newStringBuilder(); String line = null; while((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); json = sb.toString(); } catch(Exception e) { Log.e("Buffer Error", "Error converting result "+ e.toString()); } // try parse the string to a JSON object try{ jObj = newJSONObject(json); } catch(JSONException e) { Log.e("JSON Parser", "Error parsing data "+ e.toString()); } // return JSON String returnjObj; } }

到這里,本教程就結(jié)束了。

如何使用JSON連接Android和PHP Mysql數(shù)據(jù)庫

1. 什么是WAMP Server

WAMP是Windows,Apache,MySQL和PHP,Perl,Python的簡稱。WAMP是一個一鍵安裝的軟件,它為開發(fā)PHP,MySQL Web應(yīng)用程序提供一個環(huán)境。安裝這款軟件你相當(dāng)于安裝了Apache,MySQL和PHP?;蛘?,你也可以使用XAMP。

2. 安裝和使用WAMP Server

你可以從下載WAMP,安裝完成之后,可以從開始-所有程序-WampServer-StartWampServer運(yùn)行該程序。

在瀏覽器中輸入來測試你的服務(wù)器是否安裝成功。同樣的,也可以打開來檢驗phpmyadmin是否安裝成功。

3. 創(chuàng)建和運(yùn)行PHP項目

現(xiàn)在,你已經(jīng)有一個能開發(fā)PHP和MYSQL項目的環(huán)境了。打開安裝WAMP Server的文件夾(在我的電腦中,是C:\wamp\),打開www文件夾,為你的項目創(chuàng)建一個新的文件夾。你必須把項目中所有的文件放到這個文件夾中。

新建一個名為android_connect的文件夾,并新建一個php文件,命名為test.php,嘗試輸入一些簡單的php代碼(如下所示)。輸入下面的代碼后,打開,你會在瀏覽器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果沒有正確輸入,請檢查WAMP配置是否正確)

test.php

?php echo"Welcome, I am connecting Android to PHP, MySQL"; ?4. 創(chuàng)建MySQL數(shù)據(jù)庫和表

在本教程中,我創(chuàng)建了一個簡單的只有一張表的數(shù)據(jù)庫。我會用這個表來執(zhí)行一些示例操作?,F(xiàn)在,請在瀏覽器中輸入,并打開phpmyadmin。你可以用PhpMyAdmin工具創(chuàng)建數(shù)據(jù)庫和表。

創(chuàng)建數(shù)據(jù)庫和表:數(shù)據(jù)庫名:androidhive,表:product

CREATE DATABASE androidhive; CREATE TABLE products( pid int(11) primary key auto_increment, name varchar(100) not null, price decimal(10,2) not null, description text, created_at timestamp defaultnow(), updated_at timestamp );5. 用PHP連接MySQL數(shù)據(jù)庫

現(xiàn)在,真正的服務(wù)器端編程開始了。新建一個PHP類來連接MYSQL數(shù)據(jù)庫。這個類的主要功能是打開數(shù)據(jù)庫連接和在不需要時關(guān)閉數(shù)據(jù)庫連接。

新建兩個文件db_config.php,db_connect.php

db_config.php--------存儲數(shù)據(jù)庫連接變量

db_connect.php-------連接數(shù)據(jù)庫的類文件

db_config.php

如果你是PHP和MySQL新手,我建議你可以先學(xué)習(xí)PHP和SQL基礎(chǔ)知識。

6. a)在MYSQL中新建一行(創(chuàng)建一行新的產(chǎn)品)

在你的PHP項目中新建一個php文件,命名為create_product.php,并輸入以下代碼。該文件主要實現(xiàn)在products表中插入一個新的產(chǎn)品。

在下面的代碼我使用POST來讀取產(chǎn)品數(shù)據(jù)并把他們存儲在products表中。

最后我會輸出一些JSON返回值,以便返回給客戶端(Android項目)轉(zhuǎn)載,僅供參考。

如何連接android和php mysql數(shù)據(jù)庫

參考下面代碼及代碼中的注釋即可:

PHP代碼:

conn.php是連接MySQL數(shù)據(jù)庫的。代碼如下:

?php

$dbhost?=?"localhost:3306";?

$dbuser?=?"root";?//我的用戶名?

$dbpass?=?"";?//我的密碼?

$dbname?=?"testlogin";?//我的mysql庫名?

$cn?=?mysql_connect($dbhost,$dbuser,$dbpass)?or?die("connect?error");

@mysql_select_db($dbname)or?die("db?error");

mysql_query("set?names?'UTF-8'");

?

login.php代碼:

?php

include?("conn.php");//連接數(shù)據(jù)庫

$username=str_replace("?","",$_POST['name']);//接收客戶端發(fā)來的username;

$sql="select?*?from?users?where?name='$username'";

$query=mysql_query($sql);

$rs?=?mysql_fetch_array($query);

if(is_array($rs)){

if($_POST['pwd']==$rs['password']){

echo?"login?succeed";

}else{

echo?"error";

}

}

?

class?LoginHandler?implements?Runnable?{

@Override

public?void?run()?{

//?TODO?Auto-generated?method?stub

//get?username?and?password;

userName?=?user_name.getText().toString().trim();

password?=?pass_word.getText().toString().trim();

//連接到服務(wù)器的地址,我監(jiān)聽的是8080端口

String?connectURL="網(wǎng)站地址/text0/com.light.text/login.php/";

//填入用戶名密碼和連接地址

boolean?isLoginSucceed?=?gotoLogin(userName,?password,connectURL);

//判斷返回值是否為true,若是的話就跳到主頁。

if(isLoginSucceed){

Intent?intent?=?new?Intent();

intent.setClass(getApplicationContext(),?HomeActivity.class);

startActivity(intent);

proDialog.dismiss();

}else{

proDialog.dismiss();

//?Toast.makeText(ClientActivity.this,?"登入錯誤",?Toast.LENGTH_LONG).show();

System.out.println("登入錯誤");

}

}

}

//登入的方法,傳入用戶?密碼?和連接地址

private?boolean?gotoLogin(String?userName,?String?password,String?connectUrl)?{

String?result?=?null;?//用來取得返回的String;

boolean?isLoginSucceed?=?false;

//test

System.out.println("username:"+userName);

System.out.println("password:"+password);

//發(fā)送post請求

HttpPost?httpRequest?=?new?HttpPost(connectUrl);

//Post運(yùn)作傳送變數(shù)必須用NameValuePair[]陣列儲存

List?params?=?new?ArrayList();

params.add(new?BasicNameValuePair("name",userName));

params.add(new?BasicNameValuePair("pwd",password));

try{

//發(fā)出HTTP請求

httpRequest.setEntity(new?UrlEncodedFormEntity(params,HTTP.UTF_8));

//取得HTTP?response

HttpResponse?httpResponse=new?DefaultHttpClient().execute(httpRequest);

//若狀態(tài)碼為200則請求成功,取到返回數(shù)據(jù)

if(httpResponse.getStatusLine().getStatusCode()==200){

//取出字符串

result=EntityUtils.toString(httpResponse.getEntity());

ystem.out.println("result=?"+result);

}

}catch(Exception?e){

e.printStackTrace();

}

//判斷返回的數(shù)據(jù)是否為php中成功登入是輸出的

if(result.equals("login?succeed")){

isLoginSucceed?=?true;

}

return?isLoginSucceed;

}


網(wǎng)頁題目:安卓與php數(shù)據(jù)庫操作,安卓php集成環(huán)境
當(dāng)前地址:http://weahome.cn/article/hojees.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部