最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • PHP连接Access数据库常见错误及解决方法

    php+access连接数据库常用的方式一般有两种

    1.通过建立odbc驱动,再用php 的odbc_connect()函数连接

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    如:$connstr=DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$db;
    $connid=odbc_connect($connstr,"username","password",SQL_CUR_USE_ODBC);

    2.用oledb方式连接,再调用 open方法打开
    如:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    $conn=new com("ADODB.connection");
    $connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".$db;
    $conn->Open($connstr);

    但这二种方法怎么连接都出错,去网上找资料,有的说是没有赋予Everyone权限,有的说是access97 和access2000的驱动不一样(就是数据库是2000建的,读取用的驱动是97的.)造成的。

    经过反复测试原来是数据库的路经造成的.以前在开发asp时习惯把数据库的地址写成相对路径,再用server.mappath()函数获取他的绝对路径.
    在开发php时也延续了这个习惯,用realpath加数据库的相对路径来获取数据库的地址.比如:$db=realpath("../db.mdb");

    但asp 的include函数和php的include函数在处理包含文件的方式似乎不同,造成了php在不同目录下包含conn.php文件连接数据库出现"常见错误 不能打开注册表关键字",

    或Uncaught exception ‘com_exception’ with message ‘<b>Source:</b> Provider<br/><b>Description:</b> 验证失败。’ 的错误.
    现在把错误信息及解决方法整理一下贴给大家,希望别的朋友遇到这种情况不用像我这样郁闷.

    php连接access 数据库常见问题
    错误1:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ‘Temporary (volatile) Jet DSN for process 0xdd0 Thread 0xcb8 DBC 0x14bd024 Jet’。, SQL state S1000 in SQLConnect in E:wwwrootphpwebconn.php on line 8

    出现这种错误证明你使用的是odbc的access驱动,就是上面说的第一种连接数据库的方法$connstr=DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$db;
    并且你当前访问的文件和你的conn.php数据库连接文件不在同一目录下,包含conn.php时用的相对路径,比如 include("../conn.php"),由于php处理include函数里的文件和 asp的不同,

    造成了数据库路径上的错误,

    解决方法:
    1,检查你数据库的路径,是不是用realpath()函数加相对路径来获取的, 

    比如:$db=realpath("../db.mdb");

    如果是,请换种方法获取数据库地址,比如用:$_SERVER[‘DOCUMENT_ROOT’]来获取你网站的根目,再加数据库的地址,

    例:$db=$_SERVER[‘DOCUMENT_ROOT’]."db.mdb";

    2,检查权限,赋予他Everyone权限

    3,换种连接方式,微软的odbc驱动存在一些不稳定的bug,有可能导致此类错误,据说微软本身已经放弃了对odbc数据源连接方式的支持,并建议用户使用oledb方式,应该将连接字串改为如下方式:
    "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".$db;

    错误2:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    Fatal error: Uncaught exception ‘com_exception’ with message ‘<b>Source:</b> Provider<br/><b>Description:</b> 验证失败。’ in E:wwwrootphpwebconn.php:7 Stack trace: #0 E:wwwrootphpwebconn.php(7): com->Open(‘Provider=Micros…’) #1 ……………

    这种错误说明你用的是oledb的方式连接的数据库,并且也是数据库的路径造成的.
    解决方法同上,用$_SERVER[‘DOCUMENT_ROOT’]."db.mdb";方法获取数据库地址

    错误3:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序, SQL state IM002 in SQLConnect in E:wwwrootphpwebconn.php on line 8

    odbc 驱动方式连接的数据库,错误原因多半是你的连接字符串写错了,完整的连接字符串应该是:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    $db=$_SERVER[‘DOCUMENT_ROOT’]."db.mdb";
    $connstr="Driver={Microsoft Access Driver (*.mdb)};Dbq=$db;Uid=Admin;Pwd=pass";
    $connid=odbc_connect($connstr,"admin","pass",SQL_CUR_USE_ODBC) or die("数据库打开失败!请联系管理员");

    如果你的数据库没有密码以上Uid和Pwd可以省略

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    $connstr="Driver={Microsoft Access Driver (*.mdb)};Dbq=$db";
    $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC) or die("数据库打开失败!请联系管理员");

    错误4:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    Fatal error: Uncaught exception ‘com_exception’ with message ‘<b>Source:</b> ADODB.Connection<br/><b>Description:</b> 未找到提供程序。该程序可能未正确安装。’ in………………….

    oledb连接方式,错误原因同上,完整的连接字符串应该是:

    Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
    $db=$_SERVER[‘DOCUMENT_ROOT’]."db.mdb";
    $conn=new com("ADODB.connection");
    $connstr="Provider=Microsoaft.Jet.OLEDB.4.0;Data Source=".$db;
    $conn->Open($connstr);
    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » PHP连接Access数据库常见错误及解决方法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级