>백엔드 개발 >PHP 튜토리얼 >SQLSTATE[IM002] SQLDriverConnect: 0解决思路

SQLSTATE[IM002] SQLDriverConnect: 0解决思路

WBOY
WBOY원래의
2016-06-13 11:47:595558검색

SQLSTATE[IM002] SQLDriverConnect: 0
conn.php

<?php<br />try {<br />    $conn = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=".realpath("../data/data.mdb"));<br />} catch (PDOException $e) {<br />    echo 'Connection failed: ' . $e->getMessage();<br />}<br />?>


运行后报错提示
Connection failed: SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

百度谷歌搜了老半天也不知道哪里设置有问题,php_pdo_odbc.dll有启用,phpinfo()也显示支持pdo/odbc等,mdb文件路径也是正确的

系统是win7sp1 x64
PHP是 5.5.7 VC11 x64 Thread Safe
Apache 是httpd-2.4.7-win64-VC11
Office 是 Office2010 x64

用PDO连接mysql数据库是正常,但连接mdb就出错,是不是我哪里设置错了,或者还需要在哪里安装或设置什么驱动
------解决方案--------------------
貌似是不支持Access的数据库,新的ACCDB格式,你可以用ACE来连接试一试呢
http://www.microsoft.com/en-us/download/details.aspx?id=13255
------解决方案--------------------
代码没有问题,请检查 com 扩展是否加载
extension=php_com_dotnet.dll
从 php5.4 开始,php for windows 不再默认加载 com 扩展了,需自己配置

你是用的是 odbc 连接串,而非 odbc 数据源
所以 PDO 需要通过 com 才能构造出数据源

------解决方案--------------------
echo realpath("../data/data.mdb");
看看是什么

你的连接串对于 Access2003 肯定是没有问题的
但对于 Access2010 是否可行,因为没有无法测试
加个 Uid=Admin 试试



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.