您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

PHP连接Access数据库常见错误及解决方法_PHP教程

2024/4/24 21:38:59发布6次查看
php+access连接数据库常用的方式一般有两种
1.通过建立odbc驱动,再用php 的odbc_connect()函数连接
copy to clipboard引用的内容:[www.bkjia.com]如:$connstr=driver={microsoft access driver (*.mdb)}; dbq=.$db;
$connid=odbc_connect($connstr,username,password,sql_cur_use_odbc); 2.用oledb方式连接,再调用 open方法打开
如:
copy to clipboard引用的内容:[www.bkjia.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 'source: provider
description: 验证失败。' 的错误.
现在把错误信息及解决方法整理一下贴给大家,希望别的朋友遇到这种情况不用像我这样郁闷.
php连接access 数据库常见问题
错误1:
copy to clipboard引用的内容:[www.bkjia.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:\wwwroot\\phpweb\conn.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 clipboard引用的内容:[www.bkjia.com]fatal error: uncaught exception 'com_exception' with message 'source: provider
description: 验证失败。' in e:\wwwroot\\phpweb\conn.php:7 stack trace: #0 e:\wwwroot\\phpweb\conn.php(7): com->open('provider=micros...') #1 ............... 这种错误说明你用的是oledb的方式连接的数据库,并且也是数据库的路径造成的.
解决方法同上,用$_server['document_root'].\db.mdb;方法获取数据库地址
错误3:
copy to clipboard引用的内容:[www.bkjia.com]warning: odbc_connect() [function.odbc-connect]: sql error: [microsoft][odbc 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序, sql state im002 in sqlconnect in e:\wwwroot\\phpweb\conn.php on line 8 odbc 驱动方式连接的数据库,错误原因多半是你的连接字符串写错了,完整的连接字符串应该是:
copy to clipboard引用的内容:[www.bkjia.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 clipboard引用的内容:[www.bkjia.com]$connstr=driver={microsoft access driver (*.mdb)};dbq=$db;
$connid=odbc_connect($connstr,,,sql_cur_use_odbc) or die(数据库打开失败!请联系管理员); 错误4:
copy to clipboard引用的内容:[www.bkjia.com]fatal error: uncaught exception 'com_exception' with message 'source: adodb.connection
description: 未找到提供程序。该程序可能未正确安装。' in...................... oledb连接方式,错误原因同上,完整的连接字符串应该是:
copy to clipboard引用的内容:[www.bkjia.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);
http://www.bkjia.com/phpjc/364756.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/364756.htmltecharticlephp+access连接数据库常用的方式一般有两种 1.通过建立odbc驱动,再用php 的odbc_connect()函数连接 copy to clipboard 引用的内容: [www.veryhuo.com] 如:...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录