php- mysql连接类实现
mysql
mysql连接类实现 -write by 三千
**************************************/
/*
使用方法(可以执行一般mysql命令,insert, delete select update)
在文件前,需要加载方法
require("mysql.class.php")
$db=new dbMysql; 加载类
$db->dbServer="localhost";
$db->dbUser="root";
$db->dbPwd="";
$db->dbDatabase="";
$db->dbConnect();
query($sql,$database);
query_first($sql,$database);
fetch_array($sql,$database);
count_records($table,$index,$where,$database);)//为得到一个表记录的数目,$table为表名,$index为key,$where为条件,$dbbase为数据库,后两个可以不选
*/
class db_Mysql
{
var $usepconnect;
var $dbSever;
var $dbDatabase;
var $dbbase;
var $dbUser;
var $dbPwd;
var $dbLink;
var $query_id;// 执行query命令的指针
var $num_rows;// 返回的条目数
var $insert_id;// 传回最后一次使用 INSERT 指令的 ID
var $affected_rows;// 传回query命令所影响的列数目
// INSERT、UPDATE 或 DELETE 所影响的列 (row) 数目。
// delete 如果不带where,那么则返回0
function dbconnect($dbbase,$usepconnect)
{
//global $usepconnect;
if($usepconnect==1)
$this->dbLink=@mysql_pconnect($this->dbServer,$this->dbUser,$this->dbPwd);//long connect
else
$this->dbLink=@mysql_connect($this->dbServer,$this->dbUser,$this->dbPwd);//short connect
//$this->dbhalt($this->dbbase);
if(!$this->dbLink) $this->dbhalt("exsiting error when connecting!");
if($this->dbbase=="") $this->dbbase=$this->dbDatabase;
if(dbbase,$this->dbLink">!@mysql_select_db($this->dbbase,$this->dbLink))
$this->dbhalt("can't use this database,please check database!");
} // end func() connect database
//change database
function dbchange_db($dbbase){
$this->dbconnect($dbbase);
}
function dbquery($sql){
//if($dbbase!="") $this->dbchange_db($dbbase);
$this->query_id=mysql_query($sql);
//print($query_id);
if(!$this->query_id) $this->dbhalt("wrong sql sentence!".$sql);
return $this->query_id;
}
function dbquery_first($sql,$dbbase){
$query_id=dbquery($sql,$dbbase);
$returnarray=mysql_fetch_array($query_id);
$this->num_rows=mysql_num_rows($query_id);
$this->dbfree_result($query_id);
return $returnarray;
}
function dbhalt($errmsg){
$msg="
database is wrong!
";
$msg=$errmsg;
echo"$msg";
die();
}
function dbfetch_array($sql,$dbbase,$type){
$query_id=$this->dbquery($sql,$dbbase);
$this->numrows=mysql_num_rows($query_id);
for($i=0;$inumrows;$i++){
if($type==0)
$array[$i]=mysql_fetch_array($query_id);
else
$array[$i]=mysql_fetch_array($query_id);
}
$this->dbfree_result($query_id);
return $array;
}
function dbdelete($sql,$dbdase){
$query_id=$this->dbquery($sql,$dbbase);
$this->affected_rows=mysql_affected_rows($this->dbLink);
$this->free_reuslt($query_id);
}
function dbinsert($sql,$dbbase){
$query_id=$this->dbquery($sql,$dbbase);
$this->insert_id=mysql_insert_id($this->dbLink);
$this->affected_rows=mysql_affected_rows($this->dbLink);
$this->free_reuslt($query_id);
}
function dbupdate($sql,$dbbase){
$query_id=$this->dbquery($sql,$dbbase);
$this->insert_id=mysql_insert_id($this->dbLink);
$this->affected_rows=mysql_affected_rows($this->dbLink);
$this->free_reuslt($query_id);
}
function dbcount_records($table,$index="id",$where="",$dbbase){
if($dbbase!="")$this->dbchangedb($dbbase);
$result=@mysql_query("select count(".$index.") as 'num' form".$table."where".$where,$this->dbLink);
if(!$result) $this->dbhalt("wrong sql sentence".$sql);
$num=@mysql_result($result,0,"num");
return $num;
}
function dbgetnum($result){
$num=@mysql_numrows($result);
return $num;
}
function dbfree_result($result_id){
@mysql_free_result($query_id);
}
function dbclose(){
mysql_close($this->dbLink);
}
} // end class
$db=new db_Mysql;
$db->dbServer="localhost";
$db->dbUser="root";
$db->dbPwd="";
$db->dbbase="test";
?>