我自已做的用来访问数据库的类和函数
<?
/*usage:
初始化数据库参数
$dbset = new Tdbset;
$dbset->init("数据库类型:,"数据服务器名/地址","用户名","密码");
打开数据库
opendb($dbset);
关闭数据库
closedb($dbset);
得到结果集id
$result=doquery($sql,$dbset);
提供fetch_array返回行数据
fetch_array($result);
fetch_array($result,$row);$row 行号。
*/
class Tdbset{
var $dbtype,$dbhost,$dbname,$dbuser,$dbpasswd,
$dblink;
function init($dbtype,$dbhost="",$dbname="",$dbuser,$dbpasswd)
{
$this->dbtype=$dbtype;
$this->dbhost=$dbhost;
$this->dbname=$dbname;
$this->dbuser=$dbuser;
$this->dbpasswd=$dbpasswd;
}
}
class TResult {
var $dbtype,$rid;
}
function opendb(&$dbset)
{
switch ($dbset->dbtype)
{
case "mysql":
$dbconn=@mysql_connect($dbset->dbhost,$dbset->dbuser,$dbset->dbpasswd);
@mysql_select_db($dbname,$dbconn);
if (!$dbconn) { return false; }
break;
case "odbc":
$dbconn=@odbc_connect($dbset->dbhost,$dbset->dbuser,$dbset->dbpasswd);
if (!$dbconn) { return false; }
break;
case "mssql":
$dbconn=@mssql_connect($dbset->dbhost,$dbset->dbuser,$dbset->dbpasswd);
echo $dbconn;
if (!$dbconn) { return false; }
break;
}
$dbset->dblink=$dbconn;
return true;
}
function do_query($sql,$dbset)
{
$result=new Tresult;
$result->dbtype=$dbset->dbtype;
switch($dbset->dbtype)
{
case 'mysql':
if (!$result->rid=@mysql_query($sql,$dbset->dblink)) { return false;}
break;
case 'mssql':
if (!$result->rid=@mssql_query($sql,$dbset->dblink)) { return false;}
break;
case 'odbc':
if (!$result->rid=@odbc_do($dbset->dblink,$sql)) { return false;}
break;
}
return $result;
}
function fetch_array($result,$row=0)
{
switch ($result->dbtype)
{
case 'mysql':
if ($row>0) mysql_data_seek($result->rid,$row);
if (!$arr=@mysql_fetch_array($result->rid))
{return false;}
break;
case 'mssql':
if ($row>0) mssql_data_seek($result->rid,$row);
if (!$arr=@mssql_fetch_array($result->rid))
{return false;}
break;
case 'odbc':
if (!($row>0?odbc_fetch_row($result->rid,$row):odbc_fetch_row($result->rid) ))
{
return false;
}
$arr=array();
for ($i=1;$i<= odbc_num_fields($result->rid); $i++)
{
$arr[odbc_field_name($result->rid,$i)]=odbc_result($result->rid,$i);
}
break;
}
return $arr;
}
function closedb($dbset)
{
switch ($dbset->dbtype)
{
case 'mysql':
mysql_close($dbset->dblink);
break;
case 'mssql':
mssql_close($dbset->dblink);
break;
case 'odbc':
odbc_close($dbset->dblink);
break;
}
}