开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 255|回复: 8
收起左侧

[已解决] PHP 如何读取 mdb数据库

 关闭 [复制链接]
结帖率:88% (117/133)
发表于 2024-8-24 21:35:19 | 显示全部楼层 |阅读模式   广东省湛江市
8精币
PHP 如何读取 mdb数据库


我百du搜索了很多代码  运行起来都报错  不知道是不是缺少什么组件没开启





<?php //读取mdb数据库例程
$conn = new com("adodb.connection");
$connstr = "driver={microsoft access driver (*.mdb)}; dbq=". realpath("data.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();
?>





下面是报错
Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> ADODB.Connection<br/><b>Description:</b> 未找到提供程序。该程序可能未正确安装。' in F:\phpstudy_pro\WWW\123.php:4 Stack trace: #0 F:\phpstudy_pro\WWW\123.php(4): com->open('driver={microso...') #1 {main} thrown in F:\phpstudy_pro\WWW\123.php on line 4

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:90% (18/20)
发表于 2024-8-24 21:35:20 | 显示全部楼层   美国
<?php
// 设置DSN,假设你的DSN名为 "mdb_dsn"
$dsn = "odbc:mdb_dsn";
$user = '';  // Access数据库通常不需要用户名
$password = '';  // Access数据库通常不需要密码

try {
    // 创建一个PDO实例
    $dbh = new PDO($dsn, $user, $password);

    // 执行cha询
    $sql = "SELECT * FROM your_table_name";
    foreach ($dbh->query($sql) as $row) {
        print_r($row);
    }

    // 关闭连接
    $dbh = null;
} catch (PDOException $e) {
    echo "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:86% (6/7)
发表于 2024-8-24 22:02:49 | 显示全部楼层   山东省临沂市
php+MySQL多好,多方便
回复

使用道具 举报

结帖率:90% (18/20)
发表于 2024-8-24 22:13:51 | 显示全部楼层   福建省宁德市
这个错误消息表明你的系统上可能没有安装用于访问MDB文件的合适的ODBC驱动程序,或者你在连接时使用的驱动程序名称不正确。
回复

使用道具 举报

结帖率:88% (117/133)
 楼主| 发表于 2024-8-24 23:36:40 | 显示全部楼层   广东省湛江市

Error!: could not find driver  报错
回复

使用道具 举报

结帖率:90% (18/20)
发表于 2024-8-25 00:05:39 | 显示全部楼层   福建省福州市
794532121 发表于 2024-8-24 23:36
Error!: could not find driver  报错

把你的代码发出来
回复

使用道具 举报

结帖率:90% (18/20)
发表于 2024-8-25 00:08:37 | 显示全部楼层   福建省福州市
794532121 发表于 2024-8-24 23:36
Error!: could not find driver  报错

你是不是没安装ODBC
回复

使用道具 举报

发表于 2024-8-26 17:02:23 | 显示全部楼层   吉林省四平市
PHP的内置数据库扩展(如MySQLi, PDO等)主要支持关系型数据库如MySQL、PostgreSQL、SQLite等,并不直接支持Access的MDB文件。PHP可以通过ODBC(Open Database Connectivity)来连接和cha询Access数据库。你需要确保你的服务器安装了ODBC驱动,并且Access数据库文件对服务器是可访问的。

步骤:
安装ODBC驱动:确保服务器上安装了适当的ODBC驱动,这通常包括Microsoft Access Driver (*.mdb)。
配置ODBC数据源(DSN):在服务器上配置一个系统DSN或用户DSN,指向你的MDB文件。
使用PHP ODBC扩展:在PHP脚本中使用ODBC函数连接到DSN,并执行SQL

$dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\\path\database.mdb;";  
$conn = odbc_connect($dsn, '', '');  
if (!$conn) {  
    exit("Connection Failed: " . $conn);  
}  

$sql = "SELECT * FROM your_table";  
$rs = odbc_exec($conn, $sql);  

while (odbc_fetch_row($rs)) {  
    $field1 = odbc_result($rs, "field1");  
    echo $field1 . "<br>\n";  
}  

odbc_close($conn);
回复

使用道具 举报

结帖率:100% (2/2)
发表于 2024-8-28 01:26:00 | 显示全部楼层   河南省南阳市
要在 PHP 中读取 MDB 数据库,你需要使用一个名为 PDO 的 PHP 扩展。PDO 提供了一种统一的方法来访问各种数据库,包括 Microsoft Access 数据库(MDB)。

以下是一个简单的示例,展示了如何使用 PDO 连接到 MDB 数据库并执行cha询:

首先,确保你的 PHP 环境已经安装了 PDO 扩展和适用于 MDB 的 PDO_ODBC 驱动程序。你可以在 php.ini 文件中启用这些扩展。

创建一个 PHP 文件,例如 read_mdb.php,并在其中添加以下代码:

        
php
复制代码运行
<?php
// 设置数据库连接信息
$dsn = 'odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=path/to/your/database.mdb;';
$username = ''; // 如果需要用户名,请填写
$password = ''; // 如果需要密码,请填写

try {
    // 创建 PDO 对象
    $pdo = new PDO($dsn, $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 准备 SQL cha询
    $sql = "SELECT * FROM your_table_name";
    $stmt = $pdo->prepare($sql);

    // 执行cha询
    $stmt->execute();

    // 获取cha询结果
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 输出cha询结果
    foreach ($result as $row) {
        echo "ID: " . $row['id'] . " Name: " . $row['name'] . "<br>";
    }
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

   
将 path/to/your/database.mdb 替换为你的 MDB 数据库文件的实际路径,将 your_table_name 替换为你要cha询的表名。

在浏览器中运行 read_mdb.php 文件,你应该能看到从 MDB 数据库中cha询到的数据。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表