返回列表 回复 发帖

最近写的一个PHP操作Access类(PHP+ODBC+Access)

最近写的一个PHP操作Access类(PHP+ODBC+Access)

最近接了一个网站使用的是PHP+Access,汗,以前从来没有用php+Access做过,参考别人写的access函数,自己加入了一些其他的功能,封装为一个类,感觉调用蛮方便的,虽然没有测试过,但是感觉PHP+Access的速度没有PHP+MySQL速度快。
    代码如下:

<?php

--------------------------------------------------------------------

//FileName:class.php

//Summary: Access数据库操作类

//Author:  forest

//CreateTime: 2006-8-10     

//LastModifed:

//copyright (c)2006 

//http://freeweb.nyist.net/~chairy  

//[email]chaizuxue@163.com[/email]

//   使用范例:

//$databasepath="database.mdb";

//$dbusername="";

//$dbpassword="";

//include_once("class.php");

//$access=new Access($databasepath,$dbusername,$dbpassword);



--------------------------------------------------------------------

    class 
Access

    
{

         var 
$databasepath,$constr,$dbusername,$dbpassword,$link;

         function 
Access($databasepath,$dbusername,$dbpassword)

         {

               
$this->databasepath=$databasepath;

        
$this->username=$dbusername;

        
$this->password=$dbpassword;

        
$this->connect();

          }

        

    function 
connect()

    {

        
$this->constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" realpath($this->databasepath); 

        
$this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);

        return 
$this->link;

        
//if($this->link) echo "恭喜你,数据库连接成功!";

        //else echo "数据库连接失败!";

    
}

        

    function 
query($sql)

    {

        return @
odbc_exec($this->link,$sql);

    }

        

    function 
first_array($sql)

    {

        return 
odbc_fetch_array($this->query($sql));

    }

        

    function 
fetch_row($query)

    {

        return 
odbc_fetch_row($query);

    }

        

    function 
total_num($sql)//取得记录总数

    
{

        return 
odbc_num_rows($this->query($sql));

    }

        

    function 
close()//关闭数据库连接函数

    
{    

        
odbc_close($this->link);

    }

            

    function 
insert($table,$field)//插入记录函数

    
{

        
$temp=explode(',',$field);

        
$ins='';

        for (
$i=0;$i<count($temp);$i++)

        {

            
$ins.="'".$_POST[$temp[$i]]."',";

        }

        
$ins=substr($ins,0,-1);

        
$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";

        
$this->query($sql);

    }

        

    function 
getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

    
{

        
$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";

        
$query=$this->query($sql);

        if(
$this->fetch_row($query))

        {

            for (
$i=1;$i<$colnum;$i++)

            {

          
$info[$i]=odbc_result($query,$i);

             }

         }

         return 
$info;

    }

        

    function 
getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表    

    
{

         
$sql="SELECT * FROM ".$table." ".$condition." ".$sort;

         
$query=$this->query($sql);

         
$i=0;

         while (
$this->fetch_row($query)) 

         {

        
$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

        
$i++;

          }

          return 
$recordlist;

    }

        

    function 
getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

    
{

         
$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;

         
$query=$this->query($sql);

         
$i=0;

         while (
$this->fetch_row($query)) 

         {

         for (
$j=0;$j<$fieldnum;$j++)

        {

                   
$info[$j]=odbc_result($query,$j+1);

        }    

        
$rdlist[$i]=$info;

        
$i++;

         }

         return 
$rdlist;

    }

        

    function 
updateinfo($table,$field,$id,$set)//更新记录

    
{

        
$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;

        
$this->query($sql);

    }

        

    function 
deleteinfo($table,$field,$id)//删除记录

    
{

         
$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;

         
$this->query($sql);

    }

        

    function 
deleterecord($table,$condition)//删除指定条件的记录

    
{

         
$sql="DELETE FROM ".$table." WHERE ".$condition;

         
$this->query($sql);

    }

        

    function 
getcondrecord($table,$condition="")// 取得指定条件的记录数

    
{

         
$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;

         
$query=$this->query($sql);

         
$this->fetch_row($query);

         
$num=odbc_result($query,1);

         return 
$num;            

    }

     }

?>

复制代码
[ 本帖最后由 forest 于 2007-3-31 18:40 编辑 ]
成功就是成为最好的你自己!
我写的这个类,光有人看,没有人顶,自己顶一个,哈哈!
成功就是成为最好的你自己!
ADODB有Access的driver
不过也顶下
:$
.

[ 本帖最后由 h058 于 2006-8-17 22:33 编辑 ]
加入phper策进会需要付出代价:对php热情不变
上海phper策进会QQ群:
技术讨论25186583,40940018
上海PHP招聘信息交流26712656[已满] 67066701
上海PHP高级人才猎头群:37194424【加入条件(二选一):1.PHP工作经验2年以上 2.招聘在5K以上的公司】
这个要先建立obdc的数据源才能用吧?
老大真有闲工夫,ACCESS也搞起来了,支持
呵呵
客户至上嘛
强。。。。。access数据库。。。。。。:L 强。。。。野人阿:L 。。。
PHP很强大!
呵呵,不错,关于用类的思想去编程应该是各种语言最终演变的方向了,flash action3的语法演变看来是走在php5前面了,虽然两者一个是后台的一个前台的,但是两种语言的演变的方向确是惊人的一致.
返回列表