class dblink //数据库查询的类
{ var $dbaselink; //数据库连接指针
var $dbase;
function dblink($base=) //构造函数
//$base 为选择数据库名称
{ $this->dbaselink=@mysql_connect(host,user,password);
if(!$this->dbaselink) die($this->dberror(1));
if($base!=) $this->dbchange($base);
}
function dbclose() //关闭数据库连接
{ mysql_close($this->dbaselink);
}
function dberror($n,$sql=) //输出错误信息,并退出程序
{
$dberrorcode=array(
1 => 不能连接到数据库,
1004 => db_error_cannot_create,
1005 => db_error_cannot_create,
1006 => db_error_cannot_create,
1007 => 对象已经存在,不能完成创建操作,
1008 => 不能完成删除操作,
1046 => db_error_nodbselected,
1050 => db_error_already_exists,
1051 => db_error_nosuchtable,
1054 => 所检索的字段不存在,
1062 => db_error_already_exists,
1064 => db_error_syntax,
1100 => db_error_not_locked,
1136 => db_error_value_count_on_row,
1146 => 所检索的数据表不存在,
1049 => 所选择的数据库不存在
);
echo
错误 $n :.$dberrorcode[$n].
.$sql.
;
}
function dbchange($base) //改变当前数据库
{
$this->dbase=$base;
@mysql_select_db($base,$this->dbaselink);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg));
}
function dbquery($sql,$base=,$type=0) //对指定数据库进行访问
//$sql为sql语句
//$base为访问的数据库名,如果没有则使用上次使用的
//$type为返回数组格式,0返回name=>value形式,1返回value格式
{ if($base!= || $this->dbase!=$base) $this->dbchange($base);
$result=@mysql_query($sql,$this->dbaselink);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg,$sql));
@$num=mysql_num_rows($result);
if($num==0) $rtarray=;
else {
for($i=0;$i $rtarray[$i]=($type==0)?mysql_fetch_array($result):mysql_fetch_row($result);
}
@mysql_free_result($result);
return $rtarray;
}
function dbcountrecords($table,$where=,$base=,$index=id) //统计表中记录的数目
//$table 操作的数据表名称
//$where 完整的where子句
//$base 操作的数据库名称
//$index 操作所使用的索引字段
{ if($base!= || $this->dbase!=$base) $this->dbchange($base);
$result = mysql_query(select count(.$index.) as 'num' from $table .$where,$this->dbaselink);
@$num = mysql_result($result,0,num);
@mysql_free_result($result);
return $num;
}
function dbio($sql,$base=) //无返回值的sql操作,例如insert操作,返回新插入的id,update和delete无返回值
{ if($base!= || $this->dbase!=$base) $this->dbchange($base);
$result=@mysql_query($sql,$this->dbaselink);
@mysql_free_result($result);
return mysql_insert_id($this->dbaselink);
}
function dbfieldlist($table,$base) //字段信息列表
{ $pt = @mysql_list_fields($base,$table);
if($msg=mysql_errno($this->dbaselink)) die($this->dberror($msg));
$n=mysql_num_fields($pt);
for($i=0;$i $name = mysql_field_name($pt,$i);
$type = mysql_field_type($pt,$i);
$len = mysql_field_len($pt,$i);
$rt[$i]=array(name => $name, //字段名称
type => $type, //字段类型
len => $len); //字段长度
}
return $rt;
}
function dbtablelist($basename) //数据库basename的表信息
{
$result=mysql_list_tables($basename,$this->dbaselink);
$rt=mysql_fetch_array($result);
@mysql_free_result($result);
return $rt;
}
}