俗話說(shuō)“好的開(kāi)始是成功的一半”,而PHP+MySQL項(xiàng)目中數(shù)據(jù)庫(kù)的操作是重點(diǎn)之一,能否簡(jiǎn)化數(shù)據(jù)庫(kù)操作程序的編寫(xiě),就成了影響工作效率的關(guān)鍵之一。
所以小陽(yáng)并不是一開(kāi)始就做頁(yè)面,而是先建立一個(gè)“dbclass.php”文件,開(kāi)始編寫(xiě)操作MySQL數(shù)據(jù)庫(kù)的類(lèi)“dbClass”。即在“dbclass.php”中編寫(xiě)以下程序:
<? php
$db_username="myusername"; //連接數(shù)據(jù)庫(kù)的用戶(hù)名
$db_password="mypassword"; //連接數(shù)據(jù)庫(kù)的密碼
$db_database="mydatabase"; //數(shù)據(jù)庫(kù)名
$db_hostname="localhost"; //服務(wù)器地址
class dbClass{ //開(kāi)始數(shù)據(jù)庫(kù)類(lèi)
var $username;
var $password;
var $database;
var $hostname;
var $link;
var $result;
function dbClass($username,$password,$database,$hostname="localhost"){
$this->username=$username;
$this->password=$password;
$this->database=$database;
$this->hostname=$hostname;
}
function connect(){ //這個(gè)函數(shù)用于連接數(shù)據(jù)庫(kù)
$this->link=mysql_connect($this->hostname,$this->username,$this->password) or die("Sorry,can not connect to database");
return $this->link;
}
function select(){ //這個(gè)函數(shù)用于選擇數(shù)據(jù)庫(kù)
mysql_select_db($this->database,$this->link);
}
function query($sql){ //這個(gè)函數(shù)用于送出查詢(xún)語(yǔ)句并返回結(jié)果,常用。
if($this->result=mysql_query($sql,$this->link)) return $this->result;
else {
//這里是顯示SQL語(yǔ)句的錯(cuò)誤信息,主要是設(shè)計(jì)階段用于提示。正式運(yùn)行階段可將下面這句注釋掉。
echo "SQL語(yǔ)句錯(cuò)誤: <font color=red>$sql</font> <BR><BR>錯(cuò)誤信息: ".mysql_error();
return false;
}
}
/*
以下函數(shù)用于從結(jié)果取回?cái)?shù)組,一般與 while()循環(huán)、$db->query($sql) 配合使用,例如:
$result=query("select * from mytable");
while($row=$db->getarray($result)){
echo "$row[id] ";
}
*/
function getarray($result){
return @mysql_fetch_array($result);
}
/*
以下函數(shù)用于取得SQL查詢(xún)的第一行,一般用于查詢(xún)符合條件的行是否存在,例如:
用戶(hù)從表單提交的用戶(hù)名$username、密碼$password是否在用戶(hù)表“user”中,并返回其相應(yīng)的數(shù)組:
if($user=$db->getfirst("select * from user where username='$username' and password='$password' "))
echo "歡迎 $username ,您的ID是 $user[id] 。";
else
echo "用戶(hù)名或密碼錯(cuò)誤!";
*/
function getfirst($sql){
return @mysql_fetch_array($this->query($sql));
}
/*
以下函數(shù)返回符合查詢(xún)條件的總行數(shù),例如用于分頁(yè)的計(jì)算等要用到,例如:
$totlerows=$db->getcount("select * from mytable");
echo "共有 $totlerows 條信息。";
*/
function getcount($sql){
return @mysql_num_rows($this->query($sql));
}
/*
以下函數(shù)用于更新數(shù)據(jù)庫(kù),例如用戶(hù)更改密碼:
$db->update("update user set password='$new_password' where userid='$userid' ");
*/
function update($sql){
return $this->query($sql);
}
/*
以下函數(shù)用于向數(shù)據(jù)庫(kù)插入一行,例如添加一個(gè)用戶(hù):
$db->insert("insert into user (userid,username,password) values (null,'$username','$password')");
*/
function insert($sql){
return $this->query($sql);
}
function getid(){ //這個(gè)函數(shù)用于取得剛插入行的id
return mysql_insert_id();
}
}
/*
主要函數(shù)就是這些,如果你自己有另外的需要,也可以自己添加上去。
因?yàn)榉彩褂迷擃?lèi)的都必須連接數(shù)據(jù)庫(kù),下面就連接并選擇好數(shù)據(jù)庫(kù)吧:
*/
$db=new dbClass("$db_username","$db_password","$db_database","$db_hostname");
$db->connect();
$db->select();
?>
OK,數(shù)據(jù)庫(kù)的類(lèi)已經(jīng)寫(xiě)好了,它不但可以用在目前這個(gè)項(xiàng)目中,其他項(xiàng)目的同樣適用!只要把“dbclass.php”復(fù)制過(guò)去就行了。要用本文件的時(shí)候只要用語(yǔ)句“inslude_once("dbclass.php")”就行,具體語(yǔ)法在編寫(xiě)數(shù)據(jù)庫(kù)類(lèi)時(shí)已有舉例,不再贅述。
寫(xiě)好數(shù)據(jù)庫(kù)的類(lèi)后,數(shù)據(jù)庫(kù)的操作就方便多了,項(xiàng)目的制作已跨出了重要的第一步。
------------------------------- · 相關(guān)文檔瀏覽 · --------------------------------------------------------------------- · 熱門(mén)文檔瀏覽 · -------------------------------------