LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 837|回复: 6

自己写的一个adodb for mysql.....因为adodb实在是慢.........

[复制链接]
发表于 2005-6-10 18:53:08 | 显示全部楼层 |阅读模式
[PHP]<?php
/**
* describe
*
* detail info
*
* @example example here
* @author Justin NBX <justin@luckygroup.net>
* @version $Id$
*/

class AdodbLite
{
        var $conn;
        var $db;

        var $db_type;
        var $db_host;
        var $db_user;
        var $db_password;
        var $db_user;
        var $db_name;

        var $sql_query;
        var $result;

        function AdodbLite($db_type)
        {
                return true;
        }

        function PConnect($db_host, $db_user, $db_password, $db_name)
        {
                $this->conn = mysql_pconnect($db_host, $db_user, $db_password);
                mysql_select_db($db_name, $this->conn);
        }

        function Connect($db_host, $db_user, $db_password, $db_name)
        {
                $this->conn = mysql_connect($db_host, $db_user, $db_password);
                mysql_select_db($db_name, $this->conn);
        }

        function Execute($sql)
        {
                if(!$result = mysql_query($sql, $this->conn))return false;
                $this->result = new AdoResult($result, $this->conn);
                return $this->result;
        }

        function _Execute($sql)
        {
                return $this->Execute($sql);
        }

        function Insert_ID($id=0)
        {
                $insert_id = ($id)?$id:mysql_insert_id($this->conn);
        }

        function GetAssoc($sql)
        {
                if(!$result = mysql_query($sql, $this->conn))return false;
                while($row = mysql_fetch_assoc($result))
                {
                        $keys = array_keys($row);
                        $key = $row[$keys[0]];
                        unset($row[$keys[0]]);
                        $rows[$key] = $row;
                        if(count($row)<=2)$rows[$key] = $row[$keys[1]];
                }
                return $rows;
        }

        function Close()
        {
                return mysql_close($this->conn);
        }

        function ErrorMsg()
        {
                return mysql_error();
        }
}


class AdoResult
{
        var $result;
        var $rows;
        var $conn;

        function AdoResult($result, $conn)
        {
                $this->result = $result;
                $this->conn = $conn;
        }

        function RecordCount()
        {
                return mysql_num_rows($this->result);
        }

        function fetchRow()
        {
                return @mysql_fetch_assoc($this->result);
        }

        function getRows()
        {
                while($row = mysql_fetch_assoc($this->result))
                {
                        $rows[] = $row;
                }
                return $rows;
        }

        function fetchObject()
        {
                return @mysql_fetch_object($this->result);
        }

        function GetAssoc()
        {
                while($row = mysql_fetch_assoc($this->result))
                {
                        $keys = array_keys($row);
                        $key = $row[$keys[0]];
                        unset($row[$keys[0]]);
                        $rows[$key] = $row;
                        if(count($row)<=2)$rows[$key] = $row[$keys[1]];
                }
                return $rows;
        }

        function Close()
        {
                return mysql_free_result($this->result);
        }

        function fields($name)
        {
                $row = mysql_fetch_assoc($this->result);
                return $row[$name];
        }
}

?>[/PHP]
发表于 2005-6-11 20:17:58 | 显示全部楼层
function Close()
    {
        return mysql_free_result($this->result);
    }
???????????????????????



因改是mysql_close($this->result);


-----------------------------------------
要不就两个都写,是把  
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-11 22:11:26 | 显示全部楼层
adodb的文档中,ADORecordSet->Close()就是释放result资源.......
回复 支持 反对

使用道具 举报

发表于 2005-6-13 15:52:43 | 显示全部楼层
是吗,对不起,我没有认真看那个文档,但是就我个人理解free_result和close区别很大的.

不能少了mysql_close();建议你加上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-14 15:41:39 | 显示全部楼层
AdodbLite::Close()
回复 支持 反对

使用道具 举报

发表于 2005-6-15 08:54:01 | 显示全部楼层
请问您用哪个工具写这个程序的呢?还是注释是自己手动写上去的呢?谢谢~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-15 11:51:55 | 显示全部楼层
不少编辑器都有新建文件模板功能..............
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表