请教 php连接access 方法  代码 ,光有那个代码好像不行,是不是要什么配置,
我连接的时候老是出现错(我没有用过这个连接).
希望加一个便利代码,我好尝试一下,谢谢!

解决方案 »

  1.   

    一般来说,在数据库方面,php和mysql才是黄金搭档,但有些时候尤其小规模数据存放在accesss中时,可能就需要连接一下了。前几天,因为要给老师把一些图片从access数据库中提取出来生成文件,自己对vb之类有不太熟悉,就百度和查手册用php解决了一下,现在把一些心得写一下。php连接access,用的是odbc相关函数。连接的代码如下:<?php 
    $connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("mydb.mdb"); 
    $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ); 
    ?>
    如上就建立了一个连接,mydb.mdb就是你要连接的access数据库,接下来就要执行sql查询,跟mysql类似又有些不一样。
    $rs=odbc_do($connid,“sql查询”);执行查询并返回。
    odbc_fetch_row($rs),与mysql有一点差别,odbc无需返回,只有执行odbc_do()之后,才可以利用odbc_result(),来获得结果。
    $f1=odbc_result($rs,n),用来获得查询结果,n从1开始取值,表示第几个字段,也可用字段名称代替。
    基本的就这些了,更多的函数可以参考php手册的odbc函数部分,根据mysql的类比就可以。
    还有一点要说明的是,在php.ini有关于读取odbc数据库内容大小的限制,默认为4kb,若数据库中有字段大小超出就会出现内容不全,设置方法在php.ini中找到
    odbc.defaultlrl,把它后边的数值增大即可。
    下面举个例子:
    在mydb.mdb中有个pic表,表中两个字段,一个是名称,一个是picid,现要将其中picid不为空的记录读出并按格式写入一个文本文档,如下:<?php 
    $connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("mydb.mdb"); 
    $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ); 
    $query=odbc_do($connid,"select 名称,PicID from pic where PicID<>''"); while(odbc_fetch_row($query))
        

        
        $name = odbc_result($query,1);
        $id=odbc_result($query,2);
    $str=$name.'@'.$id.'^';
    $fp=fopen("picid.txt","a");
    fwrite($fp,$str);
    fclose($fp);
        }
    ?> 
    另:在access的sql查询中,不等于只能用<>,而用!=会出现错误。跟很多odbc数据库一样,odbc_num_rows($rs)往往也会返回错误,不能正确执行,可用while($odbc_fetch_row($rs))想法实现。 参考资料:http://hi.baidu.com/avrilmaomao/blog/item/12fe733eb98fe5fe828b1381.html