前二天把一个 asp+access的网站改成php+access的,在连连数据库时可真让我狠狠的郁闷了一把,
php+access连接数据库常用的方式一般有两种.
1.通过建立odbc驱动,再用php 的odbc_connect()函数连接.
以下为引用的内容: 如:$connstr=DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$db; $connid=odbc_connect($connstr,"username","password",SQL_CUR_USE_ODBC); |
以下为引用的内容: $conn=new com("ADODB.connection"); $connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".$db; $conn->Open($connstr); |
以下为引用的内容: 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\phperz.com\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"; |
以下为引用的内容: Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Provider<br/><b>Description:</b> 验证失败。' in E:\wwwroot\phperz.com\phpweb\conn.php:7 Stack trace: #0 E:\wwwroot\phperz.com\phpweb\conn.php(7): com->Open('Provider=Micros...') #1 ............... |
以下为引用的内容: Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序, SQL state IM002 in SQLConnect in E:\wwwroot\phperz.com\phpweb\conn.php on line 8 |
以下为引用的内容: $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("数据库打开失败!请联系管理员"); |
以下为引用的内容: $connstr="Driver={Microsoft Access Driver (*.mdb)};Dbq=$db"; $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC) or die("数据库打开失败!请联系管理员"); |
以下为引用的内容: Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> ADODB.Connection<br/><b>Description:</b> 未找到提供程序。该程序可能未正确安装。' in...................... |
以下为引用的内容: $db=$_SERVER['DOCUMENT_ROOT']."\db.mdb"; $conn=new com("ADODB.connection"); $connstr="Provider=Microsoaft.Jet.OLEDB.4.0;Data Source=".$db; $conn->Open($connstr); |