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

[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

程序员文章站 2022-04-29 12:32:52
...
错误信息:
Source: Microsoft OLE DB Provider for ODBC Drivers
Description: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

conn代码:
 function conn(){        try {            $this->conn = new com("ADODB.Connection");            $this->conn->Open("DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ=" . realpath("include/Database.mdb"));            //$this->conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this->dbPath).";Uid=;Pwd=".$this->dbPWD.";");            $this->showMessage = $this->siteCode;        }        catch(Exception $e){            $this->showMessage = mb_convert_encoding($e->getMessage(), "UTF-8", "GBK"). '
' . $this->siteCode; } }


输出路径:
echo realpath("include/Database.mdb");

结果:
D:\PHP_Site\HouyuanMDB\include\Database.mdb


系统环境
win7 x64,php 5.5,apache2.4.9;

我只是想php连接个ACCESS数据库,路径绝对无错,下载别人的ACCESS例子也是一样,估计不是代码错,PHP也配置了,自行百度谷歌无果后唯有求助;






回复讨论(解决方案)

这到底是什么原因造成的???

1、odbc 数据源应该是 系统数据源
你并没有用到,不知为何展示
2、改 "DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ="
为 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
一试
3、mdb 文件所在目录需要有一般用户完全控制权

1、odbc 数据源应该是 系统数据源
你并没有用到,不知为何展示
2、改 "DRIVER={Microsoft Access Driver (*.mdb,*.accdb)}; DBQ="
为 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
一试
3、mdb 文件所在目录需要有一般用户完全控制权
修改后出现:
Source: ADODB.Connection
Description: 未找到提供程序。该程序可能未正确安装。
mdb 文件所在目录(整个WEB文件夹)已经设置Everyone 读写

还要有“执行”权限

还要有“执行”权限
已是“完全控制权限”,我是怀疑PHP配置的问题,但又找不到那个问题

你的 access 的版本是多少?

在 ODBC 管理器中创建一个文件型的数据源,看看你面的连接串是否和你的相同

你的 access 的版本是多少?

在 ODBC 管理器中创建一个文件型的数据源,看看你面的连接串是否和你的相同
文件DSN内容

[ODBC]DRIVER=Microsoft Access Driver (*.mdb, *.accdb)UID=adminUserCommitSync=YesThreads=3SafeTransactions=0PageTimeout=5MaxScanRows=8MaxBufferSize=2048FIL=MS AccessDriverId=25DefaultDir=D:\PHP_Site\HouyuanMDB\includeDBQ=D:\PHP_Site\HouyuanMDB\include\Database.mdb

请问php_com_dotnet.dll 有没有分32位和64位的??

非常感谢xuzuning版主的热心帮助,问题解决了,是配置文件的问题,我从官网下载了一份配置文件,后然依照原来的配置了一样的,居然可以了,太坑爹了