这是我以前空间里写的 你参考一下:
一般来说,在数据库方面,php和mysql才是黄金搭档,但有些时候尤其小规模数据存放在accesss中时,可能就需要连接一下了。前几天,因为要给老师把一些从access数据库中提取出来生成文件,自己对vb之类有不太熟悉,就百度和查手册用php解决了一下,现在把一些心得写一下。
php连接access,用的是odbc相关函数。连接的代码如下:
<php
$connstr="DRIVER=Microsoft Access Driver (mdb);DBQ="realpath("mydbmdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC );
>
如上就建立了一个连接,mydbmdb就是你要连接的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的类比就可以。
还有一点要说明的是,在phpini有关于读取odbc数据库内容大小的限制,默认为4kb,若数据库中有字段大小超出就会出现内容不全,设置方法在phpini中找到
odbcdefaultlrl,把它后边的数值增大即可。
下面举个例子:
在mydbmdb中有个pic表,表中两个字段,一个是名称,一个是picid,现要将其中picid不为空的记录读出并按格式写入一个文本文档,如下:
<php
$connstr="DRIVER=Microsoft Access Driver (mdb);DBQ="realpath("mydbmdb");
$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("picidtxt","a");
fwrite($fp,$str);
fclose($fp);
}
>
另:在access的sql查询中,不等于只能用<>,而用!=会出现错误。跟很多odbc数据库一样,odbc_num_rows($rs)往往也会返回错误,不能正确执行,可用while($odbc_fetch_row($rs))想法实现。
PHP搭配access倒是很少见,常见都是Mysql
不过数据库大同小异语句
增加:insert into`table`(`字段名`)values('字段值')
删除:delete from `table` where `条件字段`=‘值’ 比如(`id`=1的所有 人)
查询 :select from table where 条件
改:update table set 字段名=新值,字段名=新值
>
本文实例讲述了PHP使用pdo连接access数据库并循环显示数据 *** 作。分享给大家供大家参考,具体如下:
PDO连接与查询:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(mdb)};
dbq="realpath("MyDatabasemdb"))
or
die("链接错误!");
//echo
"链接成功!";
}
catch(PDOException
$e){
echo
$e->getMessage();
}
$sql
=
"select
from
users";
1
foreach()方法
foreach
($conn->query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2
while()方法
$rs
=
$conn->query($sql);
$rs->setFetchMode(PDO::FETCH_NUM);
while($row=$rs->fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象层获取查询结果,主要有三种方式:
(1)PDO::query()查询。
看下面这段php代码:
<php
//PDO::query()查询
$res
=
$db->query('select
from
user');
$res->setFetchMode(PDO::FETCH_NUM);
//数字索引方式
while
($row
=
$res->fetch()){
print_r($row);
}
>
(2)PDO->exec()处理sql
<php
//PDO->exec()处理sql
$db->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db->exec("insert
into
user(id,name)
values('','php点点通')");
echo
$res;
>
(3)PDO::prepare()预处理执行查询
<php
//PDO::prepare()预处理执行查询
$res
=
$db->prepare("select
from
user");
$res->execute();
while
($row
=
$res->fetchAll())
{
print_r($row);
}
>
setAttribute()
方法是设置属性,常用参数如下:
PDO::CASE_LOWER
--
强制列名是小写
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
强制列名为大写
setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:
PDO::FETCH_ASSOC
--
关联数组形式
PDO::FETCH_NUM
--
数字索引数组形式
PDO::FETCH_BOTH
--
两者数组形式都有,这是默认的
PDO::FETCH_OBJ
--
按照对象的形式,类似于以前的
mysql_fetch_object()
对上面总结如下:
查询 *** 作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO->query()
—
处理一条SQL语句,并返回一个“PDOStatement”
PDO->exec()
—
处理一条SQL语句,并返回所影响的条目数
PDO::prepare()主要是预处理 *** 作,需要通过$rs->execute()来执行预处理里面的SQL语句
最后介绍两个常用的函数:
(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!
<php
$res
=
$db->query('select
from
user');
//获取指定记录里第二个字段结果
$col
=
$res->fetchColumn(1);
echo
$col;
>
(2)fetchAll(),从一个结果集中获取数据,然后存放在关联数组中
<php
$res
=
$db->query('select
from
user');
$res_arr
=$res->fetchAll();
print_r($res_arr);
>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo *** 作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库 *** 作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库 *** 作入门教程》及《php常见数据库 *** 作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:PHP使用PDO连接ACCESS数据库PHP数据库链接类(PDO+Access)实例分享php中mysql连接方式PDO使用详解关于php连接mssql:pdo
odbc
sql
serverPhp中用PDO查询Mysql来避免SQL注入风险的方法php中在PDO中使用事务(Transaction)全新的PDO数据库 *** 作类php版(仅适用Mysql)php使用pdo连接并查询sql数据库的方法php使用pdo连接mssql
server数据库实例PHP实现PDO的mysql数据库 *** 作类
以上就是关于php access 求一个最简单的 *** 作access的例子全部的内容,包括:php access 求一个最简单的 *** 作access的例子、php+access 简单的增删查改、PHP使用pdo连接access数据库并循环显示数据 *** 作示例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)