php读取access数据库

news/2024/11/17 7:35:37/文章来源:https://www.cnblogs.com/wanghjun/p/18375715

这个代码测试的老的access数据库,使用的php版本是5.4,php7.4的测试不通过

测试的文件: 链接:https://pan.quark.cn/s/c4cfef0bc484 提取码:N9mF

1.引入 com_dotnet 扩展,下载phpstudy,切换版本为php5.4,然后php.ini中加入

extension=php_com_dotnet.dll

2.复制下面代码

<?php// 数据库文件路径,替换为你的Access数据库文件的完整路径
$accessDbPath = 'D:/phpstudy_pro/WWW/other/read_access_db/db/Log1.mdb';// 构建连接字符串
$connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" . $accessDbPath;// 创建ADODB连接对象
$conn = new COM("ADODB.Connection");// 尝试打开数据库连接
try {$conn->Open($connectionString);echo "数据库连接成功";
} catch (Exception $e) {// 如果连接失败,输出错误信息echo "数据库连接失败:" . $e->getMessage();die;
}
echo '<br />';
echo '查询的数据结果:<br />';$sql = 'SELECT * FROM fps_gamelog';
$recordset = $conn->Execute($sql);
// 检查是否有记录返回 - 遍历结果集
if ($recordset) {$field_list = ['lid', 'userid', 'username', 'created','ip'];//需要读取的字段while (!$recordset->EOF) {foreach ($field_list as $f) {echo mb_convert_encoding($recordset->Fields[$f]->Value, 'UTF-8', 'GBK'),'|'; //gbk转utf-8
        }echo '<br />';$recordset->MoveNext();}// 关闭记录集$recordset->Close();
} else {echo "No records found or error in query.";
}//查询有多少条记录
$rs = new Com("ADODB.Recordset");
$rs->Open('SELECT * FROM fps_gamelog', $conn, 1, 1);
$count = $rs->RecordCount;
echo "共有{$count}条纪录";// 关闭数据库连接
$conn->Close();

3.显示效果

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/786021.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conv1D,conv2D,和conv3D

torch.nn.Conv1d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, padding_mode=zeros, device=None, dtype=None)

wqs 二分学习笔记

蒟蒻的第一篇学习笔记qwq wqs二分用于解决此类问题 n个物品,从中选恰好m个,最大化收益。而且你发现,如果没有选m个的限制,这道题是非常好做的。 使用前提 1、恰好选k个,至多至少不行 2、答案满足凸性 什么是凸性? 设选i个物品时的收益为fi 如果把它画成函数,那么它长这样…

使用 reloadNuxtApp 强制刷新 Nuxt 应用

title: 使用 reloadNuxtApp 强制刷新 Nuxt 应用 date: 2024/8/22 updated: 2024/8/22 author: cmdragon excerpt: reloadNuxtApp 是一个强大的工具,用于在 Nuxt 3 应用中强制刷新页面。通过不同的选项,你可以控制刷新行为、指定路径、保存状态等。 categories:前端开发tags:…

[Ynoi2016] 掉进兔子洞

题目链接 : [Ynoi2016] 掉进兔子洞 好不容易争取来的三天没有模拟赛,不打Ynoi打什么。 先从莫队+bitset的板板开始,第一个自己打出来的Ynoi捏。 一个套路,就是将每个数离散化后的值变成小于等于它的数的个数,然后就可以用bitset记录出现次数了。 具体的操作就是,假如一个数…

还有程序员不会玩黑神话悟空?是我太菜了

我承认是我天真了,本来计划周二晚上公开直播新项目教学的,但是发现黑神话悟空这游戏的热度火的有点过头了啊!所以临时决定把新项目直播移到周四晚上 8 点。直播打游戏!大家好,我是程序员鱼皮。我承认是我天真了,本来计划周二晚上公开直播新项目教学的,但是发现黑神话悟空…

Git GUI与命令全能操作,转载

Git 命令基本操作 Git GUI全能基本操作 看 https://blog.csdn.net/chehec2010/article/details/89950964gui 目录 1、版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏…

spring boot简单运用ollama大模型(windows版本)

1、下载模型(windows为例)打开官方网站https://ollama.com/download/windows。打开exe文件,打开命令行工具,直接运行ollama run 要下载的模型(右上角的models能找到你想要的,例子以llama3.1展示,spring ai暂时非全支持,支持模型步骤2列出)运行完后直接是这样显示至此,…

048、Vue3+TypeScript基础,页面通讯之子页面调用父页面的事件

01、main.js代码如下:// 引入createApp用于创建Vue实例 import {createApp} from vue // 引入App.vue根组件 import App from ./App.vueconst app = createApp(App);// App.vue的根元素id为app app.mount(#app)02、App.vue代码如下:<template><div class="app&…

YOLOv5实战记录 Gradio搭建Web GUI

转自:https://blog.csdn.net/EmileJiao/article/details/137448176最终的:import torch import gradio as grmodel=torch.hub.load("./","custom",path="runs/train/exp2/weights/best.pt",source="local")title="基于Gradio的YO…

火山引擎VeDI实验平台助推企业量化决策能力升级

DataTester技术团队基于并行化的Leiden算法,快速处理亿级用户的复杂社交网络,完成基于社交圈的聚类分流。 更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 量化决策,正成为企业在数智化浪潮中掌握方向的必备之舵。通过“拍脑袋”式的…

基础组件:文本及样式

一、Text Text 用于显示简单样式文本,它包含一些控制文本显示样式的一些属性,一个简单的例子如下: Text("Hello world",textAlign: TextAlign.left, );Text("Hello world! Im Jack. "*4,maxLines: 1,overflow: TextOverflow.ellipsis, );Text("Hel…

设计模式[5]-代理模式

代码:https://gitee.com/Aes_yt/design-pattern代理模式 代理模式需要给某对象提供一个代理来访问该对象。是客户端和目标对象之间的一个媒介。 代理模式主要包括三种角色抽象主题:接口或抽象类,有着业务方法,可以让真实主题和代理对象来实现。 真实主题:实现了抽象主题的…