免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1240 | 回复: 0
打印 上一主题 下一主题

php 数据库访问类 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-20 23:04 |只看该作者 |倒序浏览

                               
               
                class DB_MySQL
{
//==========================
var $Host = "127.0.0.1";        //服务器地址
var $Database = "teaching_sys";        //数据库名称
var $User = "root";                //用户名
var $Password = "czhnet";        //用户密码
//==========================
var $Link_ID = 0;                //数据库连接   
var $Query_ID = 0;                //查询结果   
var $Row_Result = array();        //结果集组成的数组   
var $Field_Result = array();    //结果集字段名组成的数组
var $Affected_Rows;                //影响的行数
var $Rows;                        //结果集中记录行数
var $Fields;                    //结果集中字段个数
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 gb2312",$this->Link_ID);
        $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_Position = $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->Field_Result[$i] = $obj->name;
        }
        return $this->Field_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("
数据库发生错误: %s
\n", $msg);
        printf("MySQL 返回错误信息: %s
\n",    $this->Error);
        die("脚本终止");
    }//halt()
}
?>
               
               
// 使用模板
?php
require("./db_mysql.class.php");
$DB = new DB_MySQL;
$sql = "select * from student";
$DB->query($sql);
$result = $DB->get_rows_array();
$DB->get_fields_array();
echo $DB->get_affected_rows();
echo "
";
echo print_r($DB->Field_Result);
echo "";
echo $result[0]['name'].'
';
foreach($result as $v)
{
    echo $v['name'].'
';
    print_r($v);
}
?>


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49717/showart_696455.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP