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