«

PHP连接access数据库的二种方法

时间:2024-1-19 17:08     作者:韩俊     分类: PHP


php连接access数据库的两种方法,总结如下:

(1)第一种方法:

//读取mdb数据库的值,创建ADO连接
$username=1;
$conn=new com("ADODB.Connection");
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("web.mdb");//Access数据库地址
$conn->Open($connstr);
//创建记录集
$rs=new com("ADODB.RecordSet");
$assql="select * from sail_about where id=".$username."";
$rs->Open($assql,$conn,1,1);//打开数据库
if(! $rs->eof){
    echo "<br><b>".$rs["title"].":</b> ";
    exit;
}else{
    echo "<br>ACCESS查询成功";
}
//循环读取数据
while(!$rs->eof){ 
    echo $rs->fields['G_date']->Value; 
    echo ''; 
    $rs->movenext();//将记录集指针下移
}
$rs->close();//关闭数据库

(2)第二种方法:

//用odbc_connect函数连接access数据库
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("web.mdb");
$conn=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
$query=odbc_do($conn,"select * from sail_about");
while(odbc_fetch_row($query)){
    for($i=0;$i<2;$i++){   //$i<2 2值是sail_about 表里的值数
        echo $record[$i] = odbc_result($query,$i+1);
    }
    echo "<br>";
}

PHP连接Access数据库的类

/**
*2007.04byzhaohe
*
*php连接access通用类
*
*用法:
*建立newAccess类=>set_db设置数据路径=>set_login设置连接数据库的用户名和密码
*=>通过set_conn设置连接=>
*{
get_result获取查询执行结果;get_result_rows获取查询执行列表,一般是select
insert_info插入新的记录update_info更新记录
}
*/

class Access{
    /**
    *类变量定义
    *@param$connmysql连接号
    *@param$error错误代号
    *@param$username/$password数据库连接用户名和密码
    *@paramarray$err_info错误信息
    *
    *@param$debuginfo调试信息
    *@param$table当前操作数据表
    */
    var$conn;
    var$error;
    var$database;
    var$username="";
    var$password="";
    var$err_info=array(
    0=>"没有错误!",
    1=>"数据库连接失败!",
    2=>"sql执行出错!"
    );
    var$debuginfo="";
    var$table;

    /**
    *默认构造方法
    **/
    function Access($arr=null){
        if(is_array($arr)){
            $this->set_login($arr['host'],$arr['username'],$arr['password']);
            $this->set_db($arr['database']);
            $this->set_conn();
        }
    }

    /**
    *设置数据库文件名
    *@paramstring$dbfile
    *
    *return void
    */
    function set_db($dbfile){
        $this->database=$dbfile;
    }

    /**
    *设置连接数据库的用户名和密码
    *@paramstring$user用户名
    *@paramstring$pwd密码
    *
    *@return void
    */
    function set_login($user,$pwd){
        $this->username=$user;
        $this->password=$pwd;
    }

    /**
    *创建数据库连接
    *@param
    *return void
    */
    function set_conn(){
        if($this->conn=odbc_connect("DRIVER=MicrosoftAccessDriver(*.mdb);DBQ=".realpath($this->database),$this->username,$this->password,SQL_CUR_USE_ODBC)){
            $this->error=0;
        }else{
            $this->error=1;
        }
    }

    /**
    *设置当前操作的数据表
    *@paramstring$tb
    *
    *@return void
    */
    function set_table($tb){
        $this->table=$tb;
    }

    /**
    *返回sql查询结果
    *@paramstring$sqlsql语句
    *
    *@return #id
    */
    function get_result($sql){
        return odbc_do($this->conn,$sql);
    }

    /**
    *获取查询的结果
    *@paramstring$sql
    *
    *@return array结果的二维数组
    */
    function get_result_rows($sql){
        $array=array();
        $result=$this->get_result($sql);
        while($row=odbc_fetch_array($result)){
            $array[]=$row;
        }
        return $array;
    }
    /**
    *获取部分查询结果
    *
    *@paramArray数组
    *@return Array
    */
    function get_query_result($cols,$tb=null,$order=null,$limit=null,$start=0){
        if(empty($tb)){
            $tb=$this->table;
        }else{
            $this->table=$tb;
        }

        if(is_array($cols)){
            $col="[".implode('],[',$cols)."]";
        }else{
            $col=$cols;
        }

        if(empty($limit)){
            $sql="select$colfrom$tb";
        }else{
            $sql="selecttop$limit$colfrom$tb";
        }
        if(isset($order)){
            $sql.="orderby$order";
        }
        return $this->get_result_rows($sql);
    }

    /**
    *执行数据库插入操作
    *
    *@param$arrvalues列表,数组索引为数据表字段
    *@param$tb操作数据表如果为空则为设置的当前类的操作表
    */
    function insert_info($arr,$tb=""){
        $cols=array_keys($arr);
        $values=array_values($arr);
        if(empty($tb)){
            $tb=$this->tb;
        }
        $sql="insertinto[$tb]([".implode("],[",$cols)."])values('".implode("','",$values)."')";
        return $this->get_result($sql);
    }

    /**
    *执行数据库更新操作
    *
    *@paramarray$arr要更新的字段值数组索引为表字段名
    *@paramarray$con条件数组
    *@paramstring$tb要操作的数据表
    *
    */
    function update_info($arr,$con,$tb=""){
        $cols=array();
        $conditions=array();
        if(empty($tb)){
            $tb=$this->tb;
        }
        foreach($arr as $key=>$value){
            $cols[]="[$key]='$value'";
        }
        foreach($con as $key=>$value){
            //检查数据类型
            if(is_int($value)||is_float($value)){
                $conditions[]="[$key]=$value";
            }else{
                $conditions[]="[$key]='$value'";
            }
        }
        $sql="update[$tb]set".implode(",",$cols)."where".implode("and",$conditions);
        return $this->get_result($sql);
    }
}

php连接access数据库详细说明

标签: php php教程

热门推荐