php+odbc+access数据库操作函数,在windows下测试通过

  •   2009-07-31/22:48
  •     前些天下载了adodb,想用adodb连access数据库,后来连是连上了,不过不能更新和插入记录,也不知道为什么到现在还没人给我回答那个苦恼的问题,后来就放弃了adodb,使用php自己的odbc,但是使用很不方便,就写下了下面这些函数,还没有封装成类,希望能够为有同样问题的朋友一些帮助

    <?php
    /*
    * @ access class
    * insert,update,delete record
    * version 1.0
    * date 2005.6
    * power by Samsun Manzalo (34n 猪八戒)
    *
    */

    //====================================
    // insert record
    // 插入记录
    //====================================
    function insRd($table,$field){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $tmpA =  explode(',',$field);
     $ins = '';
     for($i=0;$i<count($tmpA);$i++){
      $ins.= "'".$_POST[$tmpA[$i]]."',";
     }
     $ins = substr($ins,0,-1);
     $sql    =  "INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";
     //echo $sql;exit;
     $query  = @odbc_do($connid,$sql);
    }


    //====================================
    // get one record detail
    // 取得当条记录详细信息
    //====================================
    function getInfo($table,$field,$id,$colnum){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $sql    = "select * from ".$table." where ".$field."=".$id;
     $query  = @odbc_do($connid,$sql);
     
     if(odbc_fetch_row($query)){
      for($i=0;$i<$colnum;$i++){
       $info[$i] = odbc_result($query,$i+1);
      }
     }
     return $info;
    }


    //====================================
    // get record list
    // 取得记录列表
    //====================================
    function getList($table,$field,$colnum,$condition,$sort="order by id desc"){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $sql = "select * from ".$table." ".$condition." ".$sort;
     $query  = @odbc_do($connid,$sql);
     //echo $sql."<br>";
     $i  = 0;
     while(odbc_fetch_row($query)){
      $rdList[$i] = getInfo($table,$field,odbc_result($query,1),$colnum);
      $i++;
     }
     return $rdList;
    }


    //====================================
    // get record list condition
    // 取得记录列表
    //====================================
    function getFieldList($table,$field,$fieldnum,$condition="",$sort=""){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $sql = "select ".$field." from ".$table." ".$condition." ".$sort;
     $query  = @odbc_do($connid,$sql);
     //echo $sql."<br>";
     $i  = 0;
     while(odbc_fetch_row($query)){
      for($j=0;$j<$fieldnum;$j++){
       $info[$j] = odbc_result($query,$j+1);
      }
      $rdList[$i] = $info;
      $i++;
     }
     return $rdList;
    }

    //====================================
    // update record
    // 更新记录
    //====================================
    function updateInfo($table,$field,$id,$set){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $sql = "update ".$table." set ".$set." where ".$field."=".$id;
     $query  = @odbc_do($connid,$sql);
    }


    //====================================
    // record delete
    // 删除记录
    //====================================
    function delRd($table,$field,$id){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
        $sql = "delete from ".$table." where ".$field."=".$id;
        $query  = @odbc_do($connid,$sql);
    }


    //====================================
    // record delete cat
    // 删除记录(条件)
    //====================================
    function delOrRd($table,$condition){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
        $sql = "delete from ".$table." where ".$condition;
        $query  = @odbc_do($connid,$sql);
    }


    //====================================
    // count record
    // 取得记录数
    //====================================
    function countRd($table,$condition=""){
     $connstr = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=database/email.mdb";
     $connid  = @odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ) or die ("数据库连接错误!");
     $sql     =  "select count(*) as num from ".$table." ".$condition;
     $query   = @odbc_do($connid,$sql);
     odbc_fetch_row($query);
     $num     =  odbc_result($query,1);
     return $num;
    }

    ?>


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多