欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP连接.mdb文件

程序员文章站 2024-02-22 23:44:40
...

PHP连接.mdb文件

大家好,今天介绍一下PHP连接.mdb文件
记得我学习这个的时候遇到了好多bug,将经验分享给大家

现在PHP+Access真的不多,如果没有特殊需求,其实还是MySQL和MariaDB连接起来更简单…
好了,我们进入正题
如果有问题或错误,请私信或在评论区留言


文章目录

  • PHP PDO简介
  • PDO连接.mdb
  • 数据读取
  • 常见错误

PHP PDO简介

我们连接.mdb文件,最简单的方法,就是用PDO
我们看一下PDO的简介(不想看的就跳过吧,不重要…)

PHP 数据对象(PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。实现 PDO
接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。 注意利用 PDO 扩展自身并不能实现任何数据库功能;必须使用一个具体数据库的
PDO 驱动来访问数据库服务。 PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。
PDO不提供数据库抽象层;它不会重写 SQL,也不会模拟缺失的特性。如果需要的话,应该使用一个成熟的抽象层。 从 PHP 5.1开始附带了
PDO,在 PHP 5.0 中是作为一个 PECL 扩展使用。 PDO 需要PHP 5核心的新OO特性,因此不能在较早版本的 PHP
上运行。

很烦,很长…
<------------------------------------------------------------------------->

PDO一般是PHP自带的,所以并不需要复杂的安装
但是需要在php.ini中打开PDO扩展…

打开php.ini,这个在PHP配置时就讲过,在php目录下
我们将这几个扩展前面的分号去掉

extension=odbc
extension=openssl
extension=pdo_firebird
extension=pdo_mysql
extension=pdo_oci
extension=pdo_odbc
extension=pdo_pgsql
extension=pdo_sqlite

重启服务器…
好了,现在你可以使用PHP PDO了

PHP连接.mdb文件

不废话了,代码

try
{
	$sql=new PDO("odbc:driver={microsoft access driver (*.mdb)};dbq=" . $path . "xxx.mdb");
	echo "OK";
}
catch(PDOException $err)
{
	$sql=null;
	die("Connecting Error: can not connect to the server");
}

我们来看一**释

try catch
//捕捉错误
-------------------------------------------
$sql=new PDO("
odbc:driver={microsoft access driver (*.mdb)};
dbq=x:\\xxx\\xxx.mdb");
/*
这里是连接的代码

"dbq="后面加你的文件的绝对路径
比如说C:\\hello.mdb
你可以用getcwd()获取当前绝对路径

*/
-------------------------------------------
$sql=null;
//关闭连接

如果连接不上,可以试一试之后的常见错误

数据读取

也是上代码

//...之前的连接代码

$value_xxx_keyword="xxx";

$cmd="SELECT * FROM xxx_tabel WHERE xxx_keyword=:xxx_keyword;";
//xxx_keyword=:xxx_keyword中的":"不要漏了
/*
这里是读取的SQL语句,因为要预处理,所以不直接用
xxx_keyword="xxxvalue"
而是用":xxx_keyword"代替"xxxvalue"
并将"xxxvalue"存入$value_xxx_keyword变量中
*/

$stmt=$sql->prepare($cmd);
$stmt->bindValue(":xxx_keyword", $value_xxx_keyword);
$stmt->execute();
$res=$stmt->fetchALL(PDO::FETCH_ASSOC);
//var_dump($res);输出取出的Array
$stmt->closeCursor();
/*
使用预处理安全取出数据,防止SQL注入
*/

//处理取出的数据
$doing=0;
while($doing<intval(count($res)))
{
	$row=$res[$doing];
	//print_r($row);
	
	//处理代码
	/*
	取出某个值:
	比如你的数据表中有一列叫做username,
	那么你用$row["username"];就可以将这一行的username值取出
	*/
	
	$doing=$doing+1;
}
$sql=null;

常见错误

  1. 页面空白 这是因为有代码出错,检查源码有没有错误,如果有错立即更改,有一个白痴方法找哪里有错,不断把某一部分代码注释掉 ????????????
  2. 提示没有PDO这个函数 在php.ini中打开扩展
  3. 其他错误 私信问