php连接access并从access数据库中读取数据

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))想法实现。

时间: 2024-09-14 06:45:43

php连接access并从access数据库中读取数据的相关文章

《数据科学:R语言实现》——2.6 从数据库中读取数据

2.6 从数据库中读取数据 由于R会把数据读入内存中,因此这对于处理和分析小型数据集很合适.然而,由于企业每天积累的数据量要比个人的多得多,数据库文档在存储和分析大型数据时就变得更加常用.为了使用R访问数据库,我们可以使用RJDBC.RODBC或者RMySQL作为通信桥梁.在这一部分中,我们会介绍如何使用RJDBC连接存在数据库中的数据. 准备工作 在这一部分中,我们需要首先准备MySQL环境.如果你的机器(Windows)上有一个环境,你可以从MySQL通知器中检查服务器状态.如果本地服务器正

求助,数据库中读取数据生成张表

问题描述 小弟刚刚实习一个月,最近遇到个问题一直没有进展问题描述,从Mysql数据库中读取一个表,生成一个Excel表格,但是表格和表的结构不一样我怎么样写一个Servlet,来实现这个功能呢?我想知道的是生成这个表格,并把数据传入进去的步骤如果能有一种上传一个干净没有数据的Excel表格做模版向其中添加数据也是再好不过啦.拜托各位大神指点迷津了,您的一句指点将使我少走许多弯路,谢谢啦 解决方案 解决方案二:poi或者jxl都可以实现读数据库获取数据想必应该难不倒你最主要的是使用poi或者jxl

php从数据库中读取数据实现方法

先看段代码  代码如下 复制代码 <?php session_start(); $con=mysql_connect('localhost','root','root') or die('链接数据库失败!'); mysql_query('set names utf8'); mysql_select_db('GuestBook'); $pagesize = 10;//每一页显示多少留言记录 if(isset($_GET['page'])&&$_GET['page']!='') $pag

从数据库中读取数据自动生成XML

xml|生成xml|数据|数据库 Program Ex:================= string sql = "SELECT id,name FROM content FOR XML AUTO,XMLDATA";SqlConnection conn =new SqlConnection( System.Configuration.ConfigurationSettings.AppSettings["testDataBase"] );SqlCommand cm

[ASP.net]从数据库中读取数据自动生成XML

asp.net|xml|生成xml|数据|数据库 Program Ex:================= string sql = "SELECT id,name FROM content FOR XML AUTO,XMLDATA";SqlConnection conn =new SqlConnection( System.Configuration.ConfigurationSettings.AppSettings["testDataBase"] );SqlCo

jdbc在读取access数据库中中文数据时出现的字符长度错误问题

问题描述 在进行java连接access数据库进行读取数据的时候原有数据限制了长度为varchar(12)在officeaccess界面直接输入了12个中文汉字但是在读取进入java后变成了原来的一半java工程字符集配置是utf-8在读取的时候设置了连接的参数字符集为GBK将java项目字符集改成GBK同样会出现这个问题请问一下有没有人知道为什么会出现这种情况并且如何解决注:同样条件下mysql就没有问题是不是access记录在写的时候按中文的字符长度算的在读取到java后按照字节的长度算的所

求C#代码!!关于从Excel表中将数据导入Access数据库,以及Access数据库中的数据导出到Excel表的代码。急!!!晚上就得交差啊

问题描述 我需要从Excel表中将数据导入Access数据库,以及Access数据库中的数据导出到Excel表的代码,越具体越好!!望各位高手能不吝赐教 解决方案 解决方案二:不会吧?难道世间真的是如此残忍?为什么没人理我啊?高手们,算小弟我求你们了!难道是分不够多吗?初出江湖实在是身无分文啊----就不要太在意这个了,好不好啊?给我写写吧,万分感谢了!!解决方案三:这里是利用officeapplication方式来操作excel的http://blog.csdn.net/fangxinggoo

asp中网access数据库中插入数据乱码

问题描述 asp中网access数据库中插入数据乱码 <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> meta http-eq

Reporting Service 2008 &amp;ldquo;报表服务器数据库内出错。此错误可能是因连接失败、超时或数据库中磁盘空间不足而导致的&amp;rdquo;

今天遇到了两个关于Reporting Service的问题, 出现问题的环境为Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64) .具体情况请见下面描述.   1:在修改报表的订阅后,保存时出现下面错误: 提示:报表服务器数据库内出错.此错误可能是因连接失败.超时或数据库中磁盘空间不足而导致的. (rsReportServerDatabaseError) 获取联机帮助 有关此错误的详细信息,请导航到本地服务器上的报表服务器或启用远程错误