<?php
//------------------------------------------------------------------------------------------
// ※Database() 构造函数,数据库初始参数
// ※Select() 查询
// ※GetRows() 返回查询的记录总数
// ※Insert() 插入记录
// ※Update() 更新
// ※Delete() 删除
// ※Halt() 中断并显示错误信息*/
//------------------------------------------------------------------------------------------
define("DATABASETYPE","1"); //定义数据库类型:1为MySql;2为SQL Server;3为Oracle;4为Odbc
define("SERVER","localhost"); //Host name or IP address of the database server
define("DATABASE","dbName"); //要连接的数据库名
define("USER","tableName"); //用于连接数据库的用户名
define("PASSWORD","paswd"); //用于连接数据库的密码
class Database{
var $dbLink; //连接句柄
var $result; //查询句柄
var $insId; //Insert()成功返回AUTO_INCREMENT列的值
var $rows; //返回数据数组
var $numRows; //返回数据数目
var $dbHost, $dbUser, $userPassword, $database;
var $dbType=DATABASETYPE;
var $msgFlag = "yes" ; //yes:show the Mysql message ; no: die by show "Halted."
function Database($dbHost=SERVER,$dbUser=USER,$userPassword=PASSWORD,$database=DATABASE){
switch($this->dbType){
case 1:
$this->dbLink=@mysql_pconnect($dbHost,$dbUser,$userPassword);// or die("Can't Connect to Remote Host!");
@mysql_select_db($database,$this->dbLink);// or die ("Can't Connect to Remote Host!");
break;
case 2:
break;
}
return true;
}
/*SQL:Select() 返回为false无结果*/
function Select($table,$columns,$condition=1){
$sql="select $columns from $table where $condition ";
//echo $sql."<br>";
$this->result=@mysql_query($sql,$this->dbLink);
unset($this->rows);
if($this->result){
$i=0;
if(!($this->rows=array("$i"=>@mysql_fetch_array($this->result))))
return false;
if(($this->numRows=@mysql_num_rows($this->result))==0)
return false;
while($tempRows=@mysql_fetch_array($this->result)){
array_push($this->rows,$tempRows);
}
}else{
$this->Halt($sql);
return false;
}
return true;
}
/*SQL:GetRows() 返回查询的记录总数*/
function GetRows($table,$condition=1){
$sql="select count(1) as count from $table where $condition";
//echo $sql."<br>";
$this->result=@mysql_query($sql,$this->dbLink);
if($this->result){
$temp=@mysql_fetch_array($this->result);
$this->numRows=$temp[count];
}else{
$this->Halt($sql);
return false;
}
return $this->numRows;
}
/*SQL:Insert()*/
function Insert($table,$columns,$values){
$sql="insert into $table ($columns) values ($values)";
//echo $sql;
$this->result=@mysql_query($sql,$this->dbLink);
if ($this->result)
$this->insId=@mysql_insert_id($this->dbLink);
else{
$this->Halt($sql);
return false;
}
return true;
}
/*SQL:Update()*/
function Update($table,$setings,$condition){
$sql="update $table set $setings where $condition";
//echo $sql;
$this->result=@mysql_query($sql,$this->dbLink);
if ($this->result)
$this->numRows=@mysql_affected_rows($this->result);
else{
$this->Halt($sql);
return false;
}
return true;
}
/*SQL:Delete*/
function Delete($table,$condition){
$sql="delete from $table where $condition";
$this->result=@mysql_query($sql,$this->dbLink);
if ($this->result)
$this->numRows=@mysql_affected_rows($this->result);
else{
$this->Halt($sql);
return false;
}
return true;
}
/*Halt():error message */
function Halt($msg){
if($this->msgFlag=="yes"){
printf("<b>Database Query Error:</b> %s<br>/n", $msg);
printf("<b>MySql Error:</b> %s<br>/n",mysql_error());
}else
echo "<META HTTP-EQUIV=REFRESH CONTENT='0;URL=../include/error.htm'>";//自定一个出错提示文件
return false;
}
}
switch($db->dbType){
case 1:
@mysql_close();
break;
case 2:
break;
}
$db = new Database();
?>