家园首页 Php4手册 我的相册 家园下载 个人文集 给我留言
我形我塑,网络相册,www.5x54.com 相册 相册 心情相册,少女相册 免费申请,我形我塑免费相册
 家园 个人文集   http://www.5x54.com
 


PHP操作Access类(PHP+ODBC+Access)


作者:网上收集    点击: 读取中...

引用代码: <?php
--------------------------------------------------------------------
//FileName:class.php
//Summary:  Access数据库操作类
//Author:  forest
//CreateTime:  2006-8-10    
//LastModifed:
//copyright  (c)2006  
//http://freeweb.nyist.net/~chairy  
//chaizuxue@163.com
//  使用范例:
//$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;        
    }
    }
?>
(%$$675#^67)心情家园www.bbsdiy.net
(%$$675#^67)心情家园www.bbsdiy.net
引用代码: <?php
--------------------------------------------------------------------
//FileName:class.php
//Summary:  Access数据库操作类
//Author:  forest
//CreateTime:  2006-8-10    
//LastModifed:
//copyright  (c)2006  freeweb.nyist.net/~chairy  chaizuxue@163.com
//  使用范例:
//$database  ="**.mdb";
//$dbuser  ="**";
//$dbpwd    ="**";
//$tablepre  ="discuz_";
//$access=new  Access($database,$dbuser,$dbpwd,$tablepre);
//$query="SELECT  *  FROM  ----"
//$access->set_query($query);
//$access->query();
    
--------------------------------------------------------------------
class  
Access{
    var  
$databasepath;  
    var  
$constr;      
    var  
$dbusername;  
    var  
$dbpassword;  
    var  
$linkid;      
    var  
$result;      
    var  
$queryString;  
    var  
$tablepre;    //数据表前缀
    
function  __construct($database,$dbuser,$dbpwd,$pre,$mode){
      
$this->databasepath=$database;
      
$this->username=$dbuser;
      
$this->password=$dbpwd;
      
$this->tablepre=$pre;
      
$this->connect($mode);
    }
    function  
Access($database,$dbuser,$dbpwd,$pre,$mode){
      
$this->__construct($database,$dbuser,$dbpwd,$pre,$mode);
    }
    function  
connect($mode=false){
      
$this->constr  =  "DRIVER={Microsoft  Access  Driver  (*.mdb)};DBQ="  .  realpath($this->databasepath);  
      if(
$mode){
        
$this->linkid  =  odbc_pconnect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);
      }  else  {
        
$this->linkid  =  odbc_connect($this->constr,$this->username,  $this->password,SQL_CUR_USE_ODBC);
      }
      return  
$this->linkid;
    }
    function  
set_query($sql)  {
      
$prefix="#@__";
      
$sql  =  trim($sql);
      
$inQuote  =  false;
      
$escaped  =  false;
      
$quoteChar  =  '';
      
$n  =  strlen($sql);
      
$np  =  strlen($prefix);
      
$restr  =  '';
      for(
$j=0;  $j  <  $n;  $j++)  {
        
$c  =  $sql{$j};
        
$test  =  substr($sql,  $j,  $np);
        if(!
$inQuote)  {
            if  (
$c  ==  '"'  ||  $c  ==  "'")  {
              
$inQuote  =  true;
              
$escaped  =  false;
              
$quoteChar  =  $c;
            }
        }  else  {
            if  (
$c  ==  $quoteChar  &&  !$escaped)  {
              
$inQuote  =  false;
            }  else  if  (
$c  ==  "\\"  &&  !$escaped)  {
              
$escaped  =  true;
            }  else  {
              
$escaped  =  false;
            }
        }
        if  (
$test  ==  $prefix  &&  !$inQuote)  {
            
$restr  .=  $this->tablepre;
            
$j  +=  $np-1;
        }  else  {
            
$restr  .=  $c;
        }
      }
      
$this->queryString  =  $restr;
    }
    function  
query($id="me"){
      
$this->result[$id]  =  @odbc_exec($this->linkid,$this->queryString);
      if(!
$this->result[$id])  {
        
$this->display_error("Execute  Query  False!  <font  color='red'>".$this->queryString."</font>");
      }
    }
    function  
first_array($id="me"){
      return  
odbc_fetch_array($this->result[$id]);
    }
    function  
fetch_row($id="me"){
      return  
odbc_fetch_row($this->result[$id]);
    }
    function  
total_num($id="me"){//取得记录总数
      
return  odbc_num_rows($this->result[$id]);
    }
    function  
close(){//关闭数据库连接函数
      
@odbc_close($this->linkid);
      
$this->free_all_result();
    }
    function  
free_result($id="me")  {
      @
mysql_free_result($this->result[$id]);
    }
    function  
free_all_result()  {
      if(!
is_array($this->result))  {
        return  
"";
      }
      foreach(
$this->result  as  $kk  =>  $vv){
        if(
$vv)  @odbc_free_result($vv);
      }
    }
    function  
insert($table,$field,$value){//插入记录函数
      
$sql="INSERT  INTO  {$table}  ({$field})  VALUES  ({$value})";
      
$this->set_query($sql);
      
$this->query();
    }
    function  
getinfo($table,$requirement,$limit){//取得当条记录详细信息
      
$sql="SELECT  *  FROM  {$table}  WHERE  {$requirement}";
      
$this->set_query($sql);
      
$this->query();
      if(
$this->fetch_row()){
        for  (
$i=1;$i<$limit;$i++){
            
$info[$i]=odbc_result($this->result["me"],$i);
        }
      }
      return  
$info;
    }
    function  
getlist($table,$field,$limit,$condition,$sort="ORDER  BY  id  DESC"){//取得记录列表
      
$sql="SELECT  *  FROM  ".$table."  ".$condition."  ".$sort;
      
$this->set_query($sql);
      
$this->query();
      while  (
$this->fetch_row()){
        
$id=odbc_result($this->result["me"],1);
        
$requirement="{$field}={$id}";
        
$recordlist[]=getinfo($table,$requirement,$limit);
      }
      return  
$recordlist;
    }
    function  
getfieldlist($table,$field,$fieldnum,$condition="",$sort=""){//取得记录列表
      
$sql="SELECT  ".$field."  FROM  ".$table."  ".$condition."  ".$sort;
      
$this->set_query($sql);
      
$this->query();
      while  (
$this->fetch_row()){
        for  (
$j=0;$j<$fieldnum;$j++){
            
$info[$j]=odbc_result($this->result["me"],$j+1);
        }    
        
$rdlist[]=$info;
      }
      return  
$rdlist;
    }
    function  
updateinfo($table,$requirement,$set){//更新记录
      
$sql="UPDATE  {$table}  SET  {$set}  WHERE  {$requirement}";
      
$this->set_query($sql);
      
$this->query();
    }
    function  
deleteinfo($table,$requirement){//删除记录
      
$sql="DELETE  FROM  {$table}  WHERE  {$requirement}";
      
$this->set_query($sql);
      
$this->query();
    }
    function  
deleterecord($table,$condition){//删除指定条件的记录
      
$sql="DELETE  FROM  ".$table."  WHERE  ".$condition;
      
$this->set_query($sql);
      
$this->query();
    }
    function  
getcondrecord($table,$condition=""){//  取得指定条件的记录数
      
$sql="SELECT  COUNT(*)  AS  num  FROM  ".$table."  ".$condition;
      
$this->set_query($sql);
      
$this->query();
      
$num=odbc_num_rows($this->result["me"]);
      return  
$num;        
    }
    function  
display_error($msg)  {
      echo  
"<html>\r\n";
      echo  
"<head>\r\n";
      echo  
"<meta  http-equiv='Content-Type'  content='text/html;  charset=gb2312'>\r\n";
      echo  
"<title>DedeCms  Error  Track</title>\r\n";
      echo  
"</head>\r\n";
      echo  
"<body>\r\n<p  style='line-helght:150%;font-size:10pt'>\r\n";
      echo  
$msg;
      echo  
"<br/><br/>";
      echo  
"</p>\r\n</body>\r\n";
      echo  
"</html>";
    }
}
?>
(%$$675#^67)心情家园www.bbsdiy.net
(%$$675#^67)心情家园www.bbsdiy.net
转至:http://www.phpchina.com/bbs/thread-8164-1-1.html

收藏此文章     打印  更新     编辑此文章    『关闭窗口』