<?php
/*****************
*数据库访问类
* ****************/
class DB_MySQL
{
    var $Host = "localhost";//服务器地址
    var $Database = "st";     //数据库名称
    var $User = "???";     //用户名
    var $Password = "???";     //密码    var $Link_ID = 0;       //数据库连接
    var $Query_ID = 0;      //查询结果
    var $Row_Result = array(); //结果集组成的数组
    var $Filed_Result = array(); //结果集字段名组成的数组
    var $Affected_Rows;       //影响的行数
    var $Rows;              //结果集中记录行数
    var $Filed;             //结果集中字段个数
    var $Row_Position = 0;  //记录指针位置索引
    //构造函数
    function _construct()
    {
        $this->connect();
        
    }//construct
    
    //解析函数
    function _destruct()
    {
        mysql_free_result($this->Query_ID);
        mysql_close($this->Link_ID);
        
    }//destruct()
    
    //连接服务器 选择数据库
    function connect($Database="",$Host="",$User="",$Password="")
    {
        if("" == $Database)
        {
            $Database = $this->Database;
        }
        if("" == $Host)
        {
            $Host = $this->Host;
        }
        if("" == $User)
        {
            $User = $this->User;
        }
        if("" == $Password)
        {
            $Password = $this->Password;
        }
        if(0 == $this->Link_ID)
        {
            $this->Link_ID=@mysql_pconnect($Host,$User,$Password);
            if(!$this->Link_ID)
            {
                $this->halt("连接数据库端失败");
            }
            if(!mysql_select_db($this->Database,$this->Link_ID))
            {
                $this->halt("不能打开指定的数据库:".$this->Database);
            }
        }
        return $this->Link_ID;
    }//connect
    
    //释放内存
    function free()
    {
        if(@mysql_free_result($this->Query_ID))
            unset($this->Row_Result);
        $this->Query_ID = 0;
    }//free()
    
    //执行查询
    function query($Query_String)
    {
        //释放上次查询占用的内存
        if($this->Query_ID)
        {
            $this->free();
        }
        if(0 == $this->Link_ID)
        {
            $this->connect;
        }
        //设置中文字符集
        @mysql_query("set names gbk");
        $this->Query_ID = @mysql_query($Query_String,$this->Link_ID);
        if(!$this->Query_ID)
        {
            $this->halt("SQL查询语句出错:".$Query_String);
        }
        return $this->Query_ID;
    }//query()
    
    //将结果集指针指向指定行
    function seek($pos)
    {
        if(@mysql_data_seek($this->Query_ID,$pos))
        {
            $this->Row_Postion = $pos;
            return true;
        }
        else
        {
            $this->halt("定位结果集发生错误");
            return false;
        }
    }//seek()
    
    //返回结果集记录组成的数组
    function get_rows_array()
    {
        $this->Get_Rows;
        for($i=0;$i<$this->Rows;$i++)
        {
            if(!mysql_data_seek($this->Query_ID,$i))
            {
                $this->halt("mysql_data_seek查询语句出错");
            }
            $this->Row_Result[$i] = mysql_fetch_array($this->Query_ID);
        }
        return $this->Row_Result;
    }//get_rows_array()
    
    //返回结果集字段组成的数组
    function get_fields_array()
    {
        $this->get_fields();
        for($i=0;$i<$this->Fields;$i++)
        {
            $obj = mysql_fetch_field($this->Query_ID,$i);
            $this->Filed_Result[$i] = $obj->name;
        }
        return $this->Filed_Result;
    }//get_fields_array()
    
    //返回影响记录数
    function get_affected_rows()
    {
        $this->Affected_Rows = mysql_affected_rows($this->Link_ID);
        return $this->Affected_Rows;
    }//get_affected_rows()
    
    //返回结果集中记录行数
    
    function get_rows()
    {
        $this->Rows = mysql_num_rows($this->Query_ID);
        return $this->Rows;
    }//get_rows()
    
    //返回结果集中字段个数
    function get_fields()
    {
        $this->Fields = mysql_num_fields($this->Query_ID);
        return $this->Fields;
    }//get_fields()
    
    //执行SQL语句并返回由查询结果中第一行记录组成的数组
    function fetch_one_array($sql)
    {
        $this->query($sql);
        return mysql_fetch_array($this->Query_ID);
    }//fetch_one_array()
    
    //打印错误
    function halt($msg)
    {
        $this->Error=mysql_error();
        printf("<br><b>数据库发生错误:</b> %s<br>\n",$msg);
        printf("<b>Mysql返回错误信息:</b> %s<br>\n",$this->Error);
        die("脚本终止");
    }//halt()
}
?> 
上面是我写的PHP连接数据库的类
下面是我用这个类的代码
<?php
require("./db_mysql.class.php");
$DB = new DB_MySQL;
$sql =  "select * from comment";
$DB->query($sql);
$result = $DB->get_rows_array();
echo"pre";
echo $result[0]['name'].'<br>';
foreach($result as $v)
{
    echo $v['name'].'<br>';
    print_r($v);
}
?>
为什么报错数据库发生错误: SQL查询语句出错:select * from comment
Mysql返回错误信息: Access denied for user 'ODBC'@'localhost' (using password: NO)
脚本终止求解