請(qǐng)注意:這里提供的代碼只是為了使你能簡(jiǎn)單的連接Android項(xiàng)目和PHP,MySQL。你不能把它作為一個(gè)標(biāo)準(zhǔn)或者安全編程實(shí)踐。在生產(chǎn)環(huán)境中,理想情況下你需要避免使用任何可能造成潛在注入漏洞的代碼(比如MYSQL注入)。MYSQL注入是一個(gè)很大的話題,不可能用單獨(dú)的一篇文章來說清楚,并且它也不在本文討論的范圍內(nèi),所以本文不以討論。
通海ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
1. 什么是WAMP Server
WAMP是Windows,Apache,MySQL和PHP,Perl,Python的簡(jiǎn)稱。WAMP是一個(gè)一鍵安裝的軟件,它為開發(fā)PHP,MySQL Web應(yīng)用程序提供一個(gè)環(huán)境。安裝這款軟件你相當(dāng)于安裝了Apache,MySQL和PHP?;蛘?,你也可以使用XAMP。
2. 安裝和使用WAMP Server
你可以從http://www。wampserver。com/en/下載WAMP,安裝完成之后,可以從開始-所有程序-WampServer-StartWampServer運(yùn)行該程序。
在瀏覽器中輸入來測(cè)試你的服務(wù)器是否安裝成功。同樣的,也可以打開來檢驗(yàn)phpmyadmin是否安裝成功。
3. 創(chuàng)建和運(yùn)行PHP項(xiàng)目
現(xiàn)在,你已經(jīng)有一個(gè)能開發(fā)PHP和MYSQL項(xiàng)目的環(huán)境了。打開安裝WAMP Server的文件夾(在我的電腦中,是C:\wamp\),打開www文件夾,為你的項(xiàng)目創(chuàng)建一個(gè)新的文件夾。你必須把項(xiàng)目中所有的文件放到這個(gè)文件夾中。
新建一個(gè)名為android_connect的文件夾,并新建一個(gè)php文件,命名為test.php,嘗試輸入一些簡(jiǎn)單的php代碼(如下所示)。輸入下面的代碼后,打開,你會(huì)在瀏覽器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果沒有正確輸入,請(qǐng)檢查WAMP配置是否正確)
test.php
?php
echo"Welcome, I am connecting Android to PHP, MySQL";
?4. 創(chuàng)建MySQL數(shù)據(jù)庫和表
在本教程中,我創(chuàng)建了一個(gè)簡(jiǎn)單的只有一張表的數(shù)據(jù)庫。我會(huì)用這個(gè)表來執(zhí)行一些示例操作?,F(xiàn)在,請(qǐng)?jiān)跒g覽器中輸入,并打開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ù)器端編程開始了。新建一個(gè)PHP類來連接MYSQL數(shù)據(jù)庫。這個(gè)類的主要功能是打開數(shù)據(jù)庫連接和在不需要時(shí)關(guān)閉數(shù)據(jù)庫連接。
新建兩個(gè)文件db_config.php,db_connect.php
db_config.php--------存儲(chǔ)數(shù)據(jù)庫連接變量
db_connect.php-------連接數(shù)據(jù)庫的類文件
db_config.php
?php
/*
* All database connection variables
*/
define('DB_USER', "root"); // db user
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "androidhive"); // database name
define('DB_SERVER', "localhost"); // db serverdb_connect.php
?php
/**
* A class file to connect to database
*/
classDB_CONNECT {
// constructor
function__construct() {
// connecting to database
$this-connect();
}
// destructor
function__destruct() {
// closing db connection
$this-close();
}
/**
* Function to connect with database
*/
functionconnect() {
// import database connection variables
require_once__DIR__ . '/db_config.php';
// Connecting to mysql database
$con= mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ordie(mysql_error());
// Selecing database
$db= mysql_select_db(DB_DATABASE) ordie(mysql_error()) ordie(mysql_error());
// returing connection cursor
return$con;
}
/**
* Function to close db connection
*/
functionclose() {
// closing db connection
mysql_close();
}
}
?怎么調(diào)用:當(dāng)你想連接MySQl數(shù)據(jù)庫或者執(zhí)行某些操作時(shí),可以這樣使用db_connect.php
$db= newDB_CONNECT(); // creating class object(will open database connection)
我們先來看一個(gè)簡(jiǎn)單的Android app例子(這里是一個(gè)商品存貨清單項(xiàng)目),在Android程序中,我們可以訪問(call)PHP腳本來執(zhí)行簡(jiǎn)單的CRUD操作(創(chuàng)建,讀取,更新,刪除)。為了使你對(duì)它的體系結(jié)構(gòu)有一個(gè)大概的了解,這里先說一下它是怎么工作的。首先你的Android項(xiàng)目訪問(call)PHP腳本來執(zhí)行一條數(shù)據(jù)操作,我們稱它為“創(chuàng)建”。然后PHP腳本連接MySQL數(shù)據(jù)庫來執(zhí)行這個(gè)操作。這樣,數(shù)據(jù)從Android程序流向PHP腳本,最終存儲(chǔ)在MySQL數(shù)據(jù)庫中。
好了,讓我們來深入的看一下。
請(qǐng)注意:這里提供的代碼只是為了使你能簡(jiǎn)單的連接Android項(xiàng)目和PHP,MySQL。你不能把它作為一個(gè)標(biāo)準(zhǔn)或者安全編程實(shí)踐。在生產(chǎn)環(huán)境中,理想情況下你需要避免使用任何可能造成潛在注入漏洞的代碼(比如MYSQL注入)。MYSQL注入是一個(gè)很大的話題,不可能用單獨(dú)的一篇文章來說清楚,并且它也不在本文討論的范圍內(nèi),所以本文不以討論。
1. 什么是WAMP Server
WAMP是Windows,Apache,MySQL和PHP,Perl,Python的簡(jiǎn)稱。WAMP是一個(gè)一鍵安裝的軟件,它為開發(fā)PHP,MySQL Web應(yīng)用程序提供一個(gè)環(huán)境。安裝這款軟件你相當(dāng)于安裝了Apache,MySQL和PHP。或者,你也可以使用 XAMP 。
2. 安裝和使用WAMP Server
在瀏覽器中輸入 來測(cè)試你的服務(wù)器是否安裝成功。同樣的,也可以打開 來檢驗(yàn)phpmyadmin是否安裝成功。
3. 創(chuàng)建和運(yùn)行PHP項(xiàng)目
現(xiàn)在,你已經(jīng)有一個(gè)能開發(fā)PHP和MYSQL項(xiàng)目的環(huán)境了。打開安裝WAMP Server的文件夾(在我的電腦中,是C:\wamp\),打開www文件夾,為你的項(xiàng)目創(chuàng)建一個(gè)新的文件夾。你必須把項(xiàng)目中所有的文件放到這個(gè)文件夾中。
新建一個(gè)名為android_connect的文件夾,并新建一個(gè)php文件,命名為test.php,嘗試輸入一些簡(jiǎn)單的php代碼(如下所示)。輸入下面的代碼后,打開 ,你會(huì)在瀏覽器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果沒有正確輸入,請(qǐng)檢查WAMP配置是否正確)
test.php
?php
echo"Welcome, I am connecting Android to PHP, MySQL";
?
4. 創(chuàng)建MySQL數(shù)據(jù)庫和表
在本教程中,我創(chuàng)建了一個(gè)簡(jiǎn)單的只有一張表的數(shù)據(jù)庫。我會(huì)用這個(gè)表來執(zhí)行一些示例操作?,F(xiàn)在,請(qǐng)?jiān)跒g覽器中輸入 ,并打開 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ù)器端編程開始了。新建一個(gè)PHP類來連接MYSQL數(shù)據(jù)庫。這個(gè)類的主要功能是打開數(shù)據(jù)庫連接和在不需要時(shí)關(guān)閉數(shù)據(jù)庫連接。
新建兩個(gè)文件 db_config.php,db_connect.php
db_config.php-------- 存儲(chǔ)數(shù)據(jù)庫連接變量
db_connect.php------- 連接數(shù)據(jù)庫的類文件
db_config.php
?php
/*
* All database connection variables
*/
define('DB_USER', "root"); // db user
define('DB_PASSWORD', ""); // db password (mention your db password here)
define('DB_DATABASE', "androidhive"); // database name
define('DB_SERVER', "localhost"); // db server
db_connect.php
?php
/**
* A class file to connect to database
*/
classDB_CONNECT {
// constructor
function__construct() {
// connecting to database
$this-connect();
}
// destructor
function__destruct() {
// closing db connection
$this-close();
}
/**
* Function to connect with database
*/
functionconnect() {
// import database connection variables
require_once__DIR__ . '/db_config.php';
// Connecting to mysql database
$con= mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ordie(mysql_error());
// Selecing database
$db= mysql_select_db(DB_DATABASE) ordie(mysql_error()) ordie(mysql_error());
// returing connection cursor
return$con;
}
/**
* Function to close db connection
*/
functionclose() {
// closing db connection
mysql_close();
}
}
?
怎么調(diào)用 :當(dāng)你想連接MySQl數(shù)據(jù)庫或者執(zhí)行某些操作時(shí),可以這樣使用db_connect.php
$db= newDB_CONNECT(); // creating class object(will open database connection)
6. 使用PHP執(zhí)行基本CRUD操作
在這部分,我將講述使用PHP對(duì)MySQL數(shù)據(jù)庫執(zhí)行基本CRUD(創(chuàng)建,讀取,更新,刪除)操作。
如果你是PHP和MySQL新手,我建議你可以先學(xué)習(xí) PHP 和 SQL 基礎(chǔ)知識(shí)。
6. a)在MYSQL中新建一行(創(chuàng)建一行新的產(chǎn)品)
在你的PHP項(xiàng)目中新建一個(gè)php文件,命名為create_product.php,并輸入以下代碼。該文件主要實(shí)現(xiàn)在products表中插入一個(gè)新的產(chǎn)品。
在下面的代碼我使用POST來讀取產(chǎn)品數(shù)據(jù)并把他們存儲(chǔ)在products表中。
最后我會(huì)輸出一些JSON返回值,以便返回給客戶端(Android項(xiàng)目)
Android客戶端直接連接遠(yuǎn)程MySQL數(shù)據(jù)庫的方法如下:String result = ""; //首先使用NameValuePair封裝將要查詢的年數(shù)和關(guān)鍵字綁定 ArrayListNameValuePair nameValuePairs = new ArrayListNameValuePair(); nameValuePairs/getAllPeopleBornAfter.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); InputStream is = entity.getContent(); }catch(Exception e){ Log.e("log_tag", "Error in http connection "+e.toString()); } //將HttpEntity轉(zhuǎn)化為String try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close();result=sb.toString(); }catch(Exception e){ Log.e("log_tag", "Error converting result "+e.toString()); }//將String通過JSONArray解析成最終結(jié)果 try{ JSONArray jArray = new JSONArray(result); for(int i=0;ijArray.length();i++){ JSONObject json_data = jArray.getJSONObject(i); Log.i("log_tag","id: "+json_data.getInt("id")+ ", name: "+json_data.getString("name")+ ", sex: "+json_data.getInt("sex")+ ", birthyear: "+json_data.getInt("birthyear") ); } } }catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); }雖然Android開發(fā)中可以直接連接數(shù)據(jù)庫,但是實(shí)際中卻不建議這么做,應(yīng)該使用服務(wù)器端中轉(zhuǎn)下完成。
Android Studio怎么連接mysql數(shù)據(jù)庫,建議使用mysql的客戶端查連接,或者使用java程序去連接,mysql安裝后就會(huì)自動(dòng)一個(gè)客戶端,這個(gè)就可以連接數(shù)據(jù)庫的。
android studio是開發(fā)android應(yīng)用的,寫不了jsp,如果你要寫java web jsp這種,建議使用IDEA或者用eclipse IDE(開發(fā)工具)。
那你可以在插入數(shù)據(jù)庫那里設(shè)置監(jiān)聽呀,一有插入就往Android推送消息。
不然你只能通過每隔一段時(shí)間刷新一下讀取數(shù)據(jù)庫,看看有沒有更新,有就推送,沒有就繼續(xù)監(jiān)聽,這個(gè)你可以自己設(shè)置更新時(shí)間。