php鏈接mysql必備條件:
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的中原網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
已安裝mysql數(shù)據(jù)庫;
檢查php環(huán)境是否已開啟mysql擴(kuò)展(一般情況下是開啟的);
檢查方法:a.使用phpinfo();函數(shù),看有沒有mysql項(xiàng);b.打開php.ini文件,檢查php_mysql.dll前分號(hào)是否已取掉。
php鏈接代碼如下:
?php
//設(shè)置編碼格式
header("Content-type:text/html;charset=utf-8");
//定義數(shù)據(jù)庫主機(jī)地址
$host="localhost";
//定義mysql數(shù)據(jù)庫登錄用戶名
$user="root";
//定義mysql數(shù)據(jù)庫登錄密碼
$pwd="";
//鏈接數(shù)據(jù)庫
$conn = mysql_connect($host,$user,$pwd);
//對(duì)連接進(jìn)行判斷
if(!$conn){
die("數(shù)據(jù)庫連接失敗!".mysql_errno());
}else{
echo "數(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,?"登入錯(cuò)誤",?Toast.LENGTH_LONG).show();
System.out.println("登入錯(cuò)誤");
}
}
}
//登入的方法,傳入用戶?密碼?和連接地址
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請(qǐng)求
HttpPost?httpRequest?=?new?HttpPost(connectUrl);
//Post運(yùn)作傳送變數(shù)必須用NameValuePair[]陣列儲(chǔ)存
List?params?=?new?ArrayList();
params.add(new?BasicNameValuePair("name",userName));
params.add(new?BasicNameValuePair("pwd",password));
try{
//發(fā)出HTTP請(qǐng)求
httpRequest.setEntity(new?UrlEncodedFormEntity(params,HTTP.UTF_8));
//取得HTTP?response
HttpResponse?httpResponse=new?DefaultHttpClient().execute(httpRequest);
//若狀態(tài)碼為200則請(qǐng)求成功,取到返回?cái)?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;
}
請(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?;蛘撸阋部梢允褂肵AMP。
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í)行一些示例操作。現(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)
while($array[]=mysql_fetch_assoc(...))
{
}
unset($array[count($array)-1])
原理:用while的賦值循環(huán)獲取整個(gè)資源
最后一項(xiàng)由于是先判斷(也就是先賦值)會(huì)得到空
所以用unset函數(shù)給刪掉
記得給分……