A. php使用pdo连接access数据库并循环显示数据操作示例
本文实例讲述了PHP使用pdo连接access数据库并循环显示数据操作。分享给大家供大家参考,具体如下:
PDO连接与查询:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
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数据库操作类
B. php 能使用access数据库
当然可以,但是比较麻烦,因为php一般运行的Unix平台不支持对access文件的读写驱动,你需要安装第三方软件进行驱动。
C. php使用adodb 链接access方法
需要注意php获取路径用的是realpath
.代码如下:
<?php
$connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);
$issuetime=date("Y-m-d H:i:s");
$sql="insert into test values("","",...)";
$result=odbc_exec($connid,$sql);
if($result) echo "successful";
else echo "failed";
?>
之二:
.代码如下:
<?PHP
//创建ADO连接
$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");
$conn->Open($connstr);
//创建记录集查询
$rs = @new COM("ADODB.RecordSet");
$rs->Open("select * from blog_Content",$conn,1,3);
echo $rs->Fields["log_Title"]->Value; //输出log_Title字段
echo "<br/>";
$rs->Movenext(); //将记录集指针下移
echo $rs->Fields["log_Title"]->Value;
$rs->close();
?>
方法三:用ODBC,在ODBC治理器中为db1.mdb建一处系统数据源(一般需要服务器权限,不建议使用)
名称:dbdsn (可以自己定)
驱动程序:Microsoft Access Driver (*.MDB)
代码:
.代码如下:
$Conn = odbc_connect("dbdsn","admin","123"); //连接数据源
$Doquery=odbc_exec($Conn,"select * from 表名 where 条件");//执行查询
D. php如何连接Access数据库
首先下载 php-5.1.1-installer.exe
才2M多,刷的就下来了,okok,然后运行,转到D盘吧,一路顺风,点击next。然后建一个目录php,新建文件info.php输入代码:
<html>
<body>
<? phpinfo(); ?>
</body>
<html>
在iis里数据http://localhost/php/info.php
如果出现一长串的PHP Version 5.1.1等样子的话,恭喜,配置好了。
如图:新建php/data/db.mdb,建表szd_t,输入点数据吧,如图:建立文件default.php;输入:
<?
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("data/db.mdb");
$conn->Open($connstr);
$rs = new com("ADODB.RecordSet");
$rs->Open("select * from szd_t",$conn,1,1);
while(! $rs->eof) {
$f = $rs->Fields(1);
echo $f->value;
$rs->MoveNext();
}
?>
浏览,还打印你刚在数据库的记录,成功成功,哈哈哈,完毕。
E. PHP简单的操作Access数据库
关于用PHP连接ACCESS数据库的做法
用ASP和PHP的,一起做一个比较..
ASP程序
程序代码 程序代码
1.conn= "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("*.mdb")
2.set conn = server.createobject("adodb.connection")
3.conn.open conn
4.set rs = Server.CreateObject("adodb.recordset")
5.sql = "select * from 表名"
6.rs.Open sql, conn, 3, 1
7.rs.Close
PHP程序
程序代码 程序代码
<?PHP
1.$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
2.$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("temp/TempData.mdb");
3.$conn->Open($connstr);
4.$rs = @new COM("ADODB.RecordSet");
5.$sql ="select * from blog_Content";
6.$rs->Open($sql,$conn,1,3);
7.$rs->close();
?>
两个程序都相对应....很好理解了吧.嘿....然后就是ASP和PHP操作记录集了...有什么不同,,看资料了事5~
php: $rs[name/index];
asp: rs(name/index);
php: $rs->Fields["name"]->Value / fields[index]->Value;
asp: rs.fields(index)/rs.field(name);
php中的方法和ASP中基本一致,只是写法上不一样,,注意:PHP区分大小写,写时后面一定要加;号
asp:
修改记录集中的记录
rs.AddNew 向记录集中添加一条新记录
rs.Delete 从记录集中删除一条记录
rs.{fieldName/fieldIndex}=指定值;
rs.Update 保存对当前记录所做的修改
CancelBatch 当记录集处在批量更新模式时)取消一批更新
CancelUpdate 调用Update之前)取消对当前记录所做的所有修改
UpdateBatch 当记录集处于批量更新模式时)保存对一个或多个记录的修改
遍历记录集
Move NumRecords 在记录集中向前或向后移动指定数目的记录数。
MoveFirst 移动到记录集的第一条记录
MoveNext 移动到记录集的下一条记录
MovePrevious 移动到记录集中的上一条记录
MoveLast 移动到记录集的最后一条记录
记录集对象属性
AbsolutePosition 用来设置或读取当前记录在记录集中的位置顺序号
BOF 标明当前位置在记录集中的第一条记录之前
EOF 标明当前位置在记录集中的最后一条记录之后
RecordCount 表示一个记录集中的记录总数
记录集进行分页
AbsolutePage 指定当前的页
PagePount 返回记录集中的逻辑页数
PageSize 指定一个逻辑页中的记录个数,缺省值是10
GetRows() 记录取到数组
MaxRecords 记录集的最大容量
本人注:在文章最后只给出了ASP的内容,没有找到PHP的啊,还有我试验了以上内容,可是发现那容输出以后只是一个Object单词,不知道为什么,还希望高手不吝赐教!
F. php连接Access数据库的三种方法
提供已知的几种连接方式:
1.
$conn = new com("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("test.mdb");
$conn->Open($connstr);
2.
$conn=new com("ADODB.connection");
$connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".realpath("test.mdb");
$conn->open($connstr);
3.
$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};Dbq=$mdbFilename", $user, $password);