odbc 手册(php access 求一个最简单的操作access的例子)

本文目录
php access 求一个最简单的操作access的例子
这是我以前空间里写的 你参考一下:
一般来说,在数据库方面,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))想法实现。
php select error
odbc_exec
(PHP 3 》= 3.0.6, PHP 4, PHP 5)
odbc_exec -- Prepare and execute a SQL statement
你没有连接上数据库
所以才会报错的
测试一下看看
《?php
// - This is a complete working dynamic example of using:
// odbc_connect, odbc_exec, getting col Names,
// odbc_fetch_row and no of rows. hope it helps
// - your driver should point to your MS access file
$conn = odbc_connect(’MSAccessDriver’,’’,’’);
$nrows=0;
if ($conn)
{
$sql = "select * from $month";
//this function will execute the sql satament
$result=odbc_exec($conn, $sql);
echo "《table align=\"center\" border=\"1\" borderColor=\"\" cellpadding=\"0\" cellspacing=\"0\"》\n";
echo "《tr》 ";
// -- print field name
$colName = odbc_num_fields($result);
for ($j=1; $j《= $colName; $j++)
{
echo "《th align=\"left\" bgcolor=\"#CCCCCC\" 》 《font color=\"#990000\"》 ";
echo odbc_field_name ($result, $j );
echo "《/font》 《/th》";
}
$j=$j-1;
$c=0;
// end of field names
while(odbc_fetch_row($result)) // getting data
{
$c=$c+1;
if ( $c%2 == 0 )
echo "《tr bgcolor=\"#d0d0d0\" 》\n";
else
echo "《tr bgcolor=\"#eeeeee\"》\n";
for($i=1;$i《=odbc_num_fields($result);$i++)
{
echo "《td》";
echo odbc_result($result,$i);
echo "《/td》";
if ( $i%$j == 0 )
{
$nrows+=1; // counting no of rows
}
}
echo "《/tr》";
}
echo "《/td》 《/tr》\n";
echo "《/table 》\n";
// --end of table
if ($nrows==0) echo "《br/》《center》 Nothing for $month yet! Try back later《/center》 《br/》";
else echo "《br/》《center》 Total Records: $nrows 《/center》 《br/》";
odbc_close ($conn);
}
else echo "odbc not connected 《br》";
?》
这个是手册上的一个例子,我这没有access,所以没有测试,应该没问题的

更多文章:
网页制作与设计期末考试(网页设计考试简答题:网页开放制作包括哪些的基本流程)
2026年9月7日 23:50
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00






