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

时间:2008-5-31    作者:Deri    分类: 分享


   <p>  最近接了一个网站使用的是PHP+Access,汗,以前从来没有用php+Access做过,参考别人写的access函数,自己加入了一些其他的功能,封装为一个类,感觉调用蛮方便的,虽然没有测试过,但是感觉PHP+Access的速度没有PHP+MySQL速度快。</p><code><?php<br />--------------------------------------------------------------------<br />//FileName:class.php<br />//Summary:Access数据库操作类<br />//Author: forest<br />//CreateTime:2006-8-10  <br />//LastModifed:<br />//copyright(c)2006freeweb.nyist.net/~chairy [email]chaizuxue@163.com[/email]<br />// 使用范例:<br />//$databasepath="database.mdb";<br />//$dbusername="";<br />//$dbpassword="";<br />//include_once("class.php");<br />//$access=newAccess($databasepath,$dbusername,$dbpassword);<br />--------------------------------------------------------------------<br />  classAccess<br />  {<br />    var$databasepath,$constr,$dbusername,$dbpassword,$link;<br />    functionAccess($databasepath,$dbusername,$dbpassword)<br />    {<br />       $this->databasepath=$databasepath;<br />    $this->username=$dbusername;<br />    $this->password=$dbpassword;<br />    $this->connect();<br />     }<br />    <br />  functionconnect()<br />  {<br />    $this->constr="DRIVER={MicrosoftAccessDriver(*.mdb)};DBQ=".realpath($this->databasepath);<br />    $this->link=odbc_connect($this->constr,$this->username,$this->password,SQL_CUR_USE_ODBC);<br />    return$this->link;<br />    //if($this->link)echo"恭喜你,数据库连接成功!";<br />    //elseecho"数据库连接失败!";<br />  }<br />    <br />  functionquery($sql)<br />  {<br />    return@odbc_exec($this->link,$sql);<br />  }<br />    <br />  functionfirst_array($sql)<br />  {<br />    returnodbc_fetch_array($this->query($sql));<br />  }<br />    <br />  functionfetch_row($query)<br />  {<br />    returnodbc_fetch_row($query);<br />  }<br />    <br />  functiontotal_num($sql)//取得记录总数<br />  {<br />    returnodbc_num_rows($this->query($sql));<br />  }<br />    <br />  functionclose()//关闭数据库连接函数<br />  {  <br />    odbc_close($this->link);<br />  }<br />      <br />  functioninsert($table,$field)//插入记录函数<br />  {<br />    $temp=explode(',',$field);<br />    $ins='';<br />    for($i=0;$i<count($temp);$i++)<br />    {<br />      $ins.="'".$_POST[$temp[$i]]."',";<br />    }<br />    $ins=substr($ins,0,-1);<br />    $sql="INSERTINTO".$table."(".$field.")VALUES(".$ins.")";<br />    $this->query($sql);<br />  }<br />    <br />  functiongetinfo($table,$field,$id,$colnum)//取得当条记录详细信息<br />  {<br />    $sql="SELECT*FROM".$table."WHERE".$field."=".$id."";<br />    $query=$this->query($sql);<br />    if($this->fetch_row($query))<br />    {<br />      for($i=1;$i<$colnum;$i++)<br />      {<br />     $info[$i]=odbc_result($query,$i);<br />      }<br />    }<br />    return$info;<br />  }<br />    <br />  functiongetlist($table,$field,$colnum,$condition,$sort="ORDERBYidDESC")//取得记录列表  <br />  {<br />    $sql="SELECT*FROM".$table."".$condition."".$sort;<br />    $query=$this->query($sql);<br />    $i=0;<br />    while($this->fetch_row($query))<br />    {<br />    $recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);<br />    $i++;<br />     }<br />     return$recordlist;<br />  }<br />    <br />  functiongetfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表<br />  {<br />    $sql="SELECT".$field."FROM".$table."".$condition."".$sort;<br />    $query=$this->query($sql);<br />    $i=0;<br />    while($this->fetch_row($query))<br />    {<br />    for($j=0;$j<$fieldnum;$j++)<br />    {<br />         $info[$j]=odbc_result($query,$j+1);<br />    }  <br />    $rdlist[$i]=$info;<br />    $i++;<br />    }<br />    return$rdlist;<br />  }<br />    <br />  functionupdateinfo($table,$field,$id,$set)//更新记录<br />  {<br />    $sql="UPDATE".$table."SET".$set."WHERE".$field."=".$id;<br />    $this->query($sql);<br />  }<br />    <br />  functiondeleteinfo($table,$field,$id)//删除记录<br />  {<br />    $sql="DELETEFROM".$table."WHERE".$field."=".$id;<br />    $this->query($sql);<br />  }<br />    <br />  functiondeleterecord($table,$condition)//删除指定条件的记录<br />  {<br />    $sql="DELETEFROM".$table."WHERE".$condition;<br />    $this->query($sql);<br />  }<br />    <br />  functiongetcondrecord($table,$condition="")//取得指定条件的记录数<br />  {<br />    $sql="SELECTCOUNT(*)ASnumFROM".$table."".$condition;<br />    $query=$this->query($sql);<br />    $this->fetch_row($query);<br />    $num=odbc_result($query,1);<br />    return$num;      <br />  }<br />  }<br />?></code></p>