配置数据源
控制面板-->管理工具-->数据源(ODBC)-->添加-->选Driver do Microsoft Access(*.mdb)-->单击完成--->输入数源名access--->单击选择-->选择所需数据库AccCtlDb.mdb


<?php

$conn=odbc_connect("access","","");

if (!$conn)
  {
  exit("连接error: " . $conn);
  }
 
$sql="select USERID,LOGTIME from AttLog";

$rs=odbc_exec($conn,$sql);

if (!$rs)
  {
      exit("执行error in SQL");
  }
 
echo " <table> <tr>";
echo " <th>USERID </th>";
echo " <th>LOGTIME </th> </tr>";

while (odbc_fetch_row($rs))
{
  $userid=odbc_result($rs,"USERID");
  $logtime=odbc_result($rs,"LOGTIME");
 
  echo " <tr> <td>$userid </td>";
  echo " <td>$logtime </td> </tr>";
}

odbc_close($conn);
echo " </table>";
?>

运行的时候就会出现"连接error",是哪里搞错了,不过AccCtlDb.mdb有加密了,要怎样配置呀!
或者把php连接access数据库所需的配置是什么帮我说下,或者要写什么样的代码! 问题点数:133 回复次数:23 显示所有回复显示星级回复显示楼主回复 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 phpBoy005 phpBoy 等级: 可用分等级:中农 总技术分:2496 总技术分排名:17330 发表于:2008-12-03 20:08:381楼 得分:10 肯定要输入密码还有就是ACCESS的版本!

修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 phpBoy005 phpBoy 等级: 可用分等级:中农 总技术分:2496 总技术分排名:17330 发表于:2008-12-03 20:13:242楼 得分:10 例: 
  <? 
  require  "adodb/tohtml.inc.php"; 
  require  "adodb/adodb.inc.php"; 
  $db  =  &ADONewConnection("ado_access");   
  print  " <h1>Connecting  $db->databaseType... </h1>";   
  $access  =  ''''test.mdb'''';   
  $myDSN  =  ''''PROVIDER=Microsoft.Jet.OLEDB.4.0;''''.''''DATA  SOURCE=''''.  $access  .  '''';'''';''''USER  ID=;PASSWORD=;'''';   
   
  if  (@$db->PConnect($myDSN,  "",  "",  ""))  {   
  print  "ADO  version=".$db->_connectionID->version." <br>";   
  $sql="select  name,sex  from  test"; 
  $rs=$db->Execute($sql); 
  rs2html($rs,''''border=2  cellpadding=3'''',array(''''Customer  Name'''',''''Customer  ID''''));   
  }  else  print  "ERROR:  Access  test  requires  a  Access  database  $access".'''' <BR>''''.$db->ErrorMsg();   
  ?> 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-03 20:33:433楼 得分:0 "require  "adodb/tohtml.inc.php"; "
"require  "adodb/adodb.inc.php"; "

这两个文件是怎写的呢,我用的是access2007的,那个密码要是写在这里也不行呀,"$conn=odbc_connect("access","","****");" ,还需要配置什么吗? 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-05 19:20:594楼 得分:0 谁会用PHP连接ACCESS呀,什么方法都行,只要能链接上,不过mdb有加密.我这php连接mysql就可以,但是连接access就不行,写详细点,谢了! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-05 21:09:325楼 得分:0 <?
 
  //include"../myaccessdb/aa.php";      这个是测试路经,测试以后可以运行,主要是测试adodb.inc.php这个文件能不能运行
   
  include  "../myaccessdb/adodb.inc.php"; //我在这个文件里面最上面和最下面加了句话,最上面可以运行,下面的就不行
  //下载的是这个Microsoft Data Access Components (MDAC) 2压缩文件,解压后真接把adodb.inc.php拷到项目的目录下,这个文件也让我转换了utf-8类型的了,还是不行,估计是这个文件有误,谁可以给我这个文件呀!

  echo"0000";//这句话也没打印出来,
 
//以下是连接查询,不知有没有错
$db = ADONewConnection(''''ado_access'''');
$access = realpath(''''../mdb/AccCtlDb.mdb'''');
$myDSN = ''''PROVIDER=Microsoft.Jet.OLEDB.4.0;''''.''''DATA SOURCE=''''. $access . '''';''''."Jet OLEDB:Database Password=8888;";
$db->Connect($myDSN);

$recordSet = $db->Execute(''''select userid,logtime from AttLog'''');
if (!$recordSet)
print $db->ErrorMsg();
else
while (!$recordSet->EOF)
{
print $recordSet->fields[0].'''' ''''.$recordSet->fields[1].'''' <BR>'''';

$recordSet->MoveNext();
}
$recordSet->Close(); # 选择性执行
$db->Close(); # 选择性执行
?> 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 phpBoy005 phpBoy 等级: 可用分等级:中农 总技术分:2496 总技术分排名:17330 发表于:2008-12-06 09:27:526楼 得分:10 PHP code //access 连接 $conn = @new COM("ADODB.Connection") or die ("ADO连接失败!"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("web.mdb"); //有密码要加上PASSWORD $conn->Open($connstr); //access查询 试试看行不行 $rs = @new COM("ADODB.RecordSet"); $sql="select userid,logtime from AttLog"; $query = odbc_do($conn,$sql); $num = 0; while(odbc_fetch_row($query)){ $record[$num] = odbc_result($query,1); $record1[$num] = odbc_result($query,2); $record2[$num] = odbc_result($query,3); $record3[$num] = odbc_result($query,4); $record4[$num] = odbc_result($query,5); $record5[$num] = odbc_result($query,6); $num = $num 1; }

修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-06 11:39:207楼 得分:0 <?php
$conn = @new COM("ADODB.Connection") or die ("ADO连接失败!");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("Z:\adodb\AccCtlDb.mdb")."Password=8888";  //有密码要加上PASSWORD
$conn->Open($connstr);
//access查询 试试看行不行
$rs = @new COM("ADODB.RecordSet");
$sql="select userid,logtime from AttLog";
$query = odbc_do($conn,$sql);
$num = 0;

while(odbc_fetch_row($query))
{
$record[$num] = odbc_result($query,1);
$record1[$num] = odbc_result($query,2);
$num = $num 1;
}
?>

什么也没显示! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-06 11:57:278楼 得分:0 <?php

include(''''adodb.inc.php'''');              # 加载ADODB
$conn = &ADONewConnection(''''access'''');    # 建立一个连结
$conn->PConnect(''''Data'''');                # 这里的''''Data'''',是数据源还是mdb数据库名称的!我的数据名称是
Data.mdb,同时也连接了数据源Date连接到Driver do Microsoft Access(*.mdb)的驱动程序  连接数据库Data.mdb

$recordSet = &$conn->Execute(''''select code,idpon from long'''');
if (!$recordSet)
        print $conn->ErrorMsg();//我测试了下,就是这里抛出的错语
else
while (!$recordSet->EOF) {
        print $recordSet->fields[0].'''' ''''.$recordSet->fields[1].'''' <BR>'''';
        $recordSet->MoveNext();
                        }

$recordSet->Close();        # 选择性执行
$conn->Close();              # 选择性执行

?>


运行的结果是:  [unixODBC][Driver Manager]Data source name not found, and no default driver specified

翻译为:      [unixODBC][驱动程序管理器] 数据源名称未找到,并没有指定默认驱动程序
修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jiang_jiajia10 紫陌佳佳 等级: 可用分等级:中农 总技术分:18171 总技术分排名:2064 发表于:2008-12-06 12:06:399楼 得分:10 PHP code <?php $db="web.mdb"; $conn=new COM(''''ADODB.Connection'''') or die(''''can not start Active X Data Objects''''); $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db"); ?> 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-06 12:25:0210楼 得分:0 $db="Z:\adodb\AccCtlDb.mdb";
$conn=new COM(''''ADODB.Connection'''') or die(''''can not start Active X Data Objects'''');
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");


我这里用$conn=new COM(''''ADODB.Connection'''')出错,什么都不会显示 ,我是用Macromedia Dreamweaver 8编写代码程序的,查出的php版本是5.0.4,是不是还需要配什么.
修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-08 15:09:4511楼 得分:0 <?
include(''''ADOdb.inc.php'''');      # 载入ADODB
$conn = &ADONewConnection(''''access'''');    # 建立一个连结
$conn->PConnect(''''northwind'''');  # 连结到 MS-Access 北风资料库
$recordSet = &$conn->Execute(''''select * from products'''');
if (!$recordSet)
        print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
        print $recordSet->fields[0].'''' ''''.$recordSet->fields[1].'''' <BR>'''';
        $recordSet->MoveNext();
}

$recordSet->Close(); # 选择性执行
$conn->Close(); # 选择性执行

?>

这个是从adodb手册里拷出来的,这个"$conn->PConnect(''''northwind'''');"里边的参数''''northwind''''是不是数据源呀,老是连接不上,抛出错误,翻译过来就是:[unixODBC][驱动程序管理器] 数据源名称未找到,并没有指定默认驱动程序
谁会呀,帮帮忙呀! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jakey9826 自由火blog.sevenight.com 等级: 可用分等级:掌柜 总技术分:16197 总技术分排名:1178

3

发表于:2008-12-08 15:17:5012楼 得分:10 没用过adoad.
用pear_db吧,你连数据源都建立了.呵呵.
修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-08 15:31:1413楼 得分:0 楼上的给个例子吧,完整的,只要查询的就可以了! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-08 15:42:4514楼 得分:0 <?php

include  "adodb.inc.php";   
include  "tohtml.inc.php";

连接mqsql就可以

$conn = &ADONewConnection(''''mysql'''');  # create a connection
$conn->PConnect(''''localhost'''',''''test'''',''''123456'''',''''student'''');# connect to MySQL, agora db
$sql = ''''select user,pwd from admin '''';
$recordSet = $conn->Execute($sql);

while (!$recordSet->EOF)
{
        print $recordSet->fields[0].'''' <br>''''.$recordSet->fields[1].'''' <BR>'''';
        $recordSet->MoveNext();
}

?>


<?php

include  "adodb.inc.php";   
include  "tohtml.inc.php";

连接access就不行
$conn = &ADONewConnection(''''access''''); 

$conn->PConnect(''''access''''); //这个''''access''''是数据源,但我看手册有四个参数,
                          //$conn->PConnect(''''localhost'''',''''Admin'''','''''''',''''D:\Data.mdb'''');这样连也不行


$recordSet = &$conn->Execute(''''select code,idpon from long'''');
if (!$recordSet)
      print $conn->ErrorMsg();
else
while (!$recordSet->EOF) {
        print $recordSet->fields[0].'''' ''''.$recordSet->fields[1].'''' <BR>'''';
        $recordSet->MoveNext();
                        }

$recordSet->Close(); # 选择性执行
$conn->Close(); # 选择性执行*/

?>


真的没有知道原因的吗?错语还是11楼抛出的那个错语 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 phpBoy005 phpBoy 等级: 可用分等级:中农 总技术分:2496 总技术分排名:17330 发表于:2008-12-08 15:54:4115楼 得分:10 PHP code 连接access就不行 $conn = &ADONewConnection(''''access''''); $conn->PConnect(''''access''''); // access应该是access版本,数据库,以及密码吧! $recordSet = &$conn->Execute(''''select code,idpon from long''''); if (!$recordSet) print $conn->ErrorMsg(); else while (!$recordSet->EOF) { print $recordSet->fields[0].'''' ''''.$recordSet->fields[1].'''' <BR>''''; $recordSet->MoveNext(); } $recordSet->Close(); # 选择性执行 $conn->Close(); # 选 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jakey9826 自由火blog.sevenight.com 等级: 可用分等级:掌柜 总技术分:16197 总技术分排名:1178

3

发表于:2008-12-08 15:56:1916楼 得分:23 PHP code require_once "db.php"; $dsn = "odbc(access)://:@/test"; //test为数据源. $db = DB::connect($dsn); $result = $db->query("select code,idpon from long"); while($row = $result->fetchRow()) { echo $row[0] . "<br/>"; } 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-08 16:04:5317楼 得分:0 15楼回复  $conn->PConnect(''''access'''');这里面的参数是我连的数据源,便于理解我又改成databook,就是$conn->PConnect(''''databook'''');,如果连access数据库的话,这里面的参数应怎样写呢,请教了!


16楼回复  require_once "db.php"; 这里的db.php是怎写的呀!也请教了
修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jakey9826 自由火blog.sevenight.com 等级: 可用分等级:掌柜 总技术分:16197 总技术分排名:1178

3

发表于:2008-12-08 16:07:0818楼 得分:10 require_once "db.php";
是pear的模块db

你可以安装pear,然后再安装pear_db.
具体请参考pear.php.net 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 fanxiaofeng19577494 曉鋒 等级: 可用分等级:长工 总技术分:5 总技术分排名:284166 发表于:2008-12-08 16:15:2619楼 得分:0 楼上的可不可以发给我,我邮箱是fgh0812@163.com,或者给我准确下载地址,我刚用迅雷搜了下pear,太多了也不知是哪个! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 vnking 六六大顺 等级: 可用分等级:富农 总技术分:142 总技术分排名:87470 发表于:2008-12-16 09:27:1420楼 得分:10 兄弟,连上没有? 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 bilemick 等级: 可用分等级:长工 总技术分:0 总技术分排名:327011 发表于:2008-12-16 09:46:3721楼 得分:10 Const DBFileName = "\XXX\XXX.mdb"
Dim ConnStr
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBFileName)
现成的,保你连接上! 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jim8590251 清风 等级: 可用分等级:贫农 总技术分:380 总技术分排名:90598 发表于:2008-12-16 09:49:5522楼 得分:10 upup.. 修改 删除 举报 引用 回复 加为好友 发送私信 在线聊天 jakey9826 自由火blog.sevenight.com 等级: 可用分等级:掌柜 总技术分:16197 总技术分排名:1178

3

发表于:2008-12-16 09:59:4623楼 得分:10 引用 19 楼 fanxiaofeng19577494 的回复:
楼上的可不可以发给我,我邮箱是fgh0812@163.com,或者给我准确下载地址,我刚用迅雷搜了下pear,太多了也不知是哪个!

windows php 安装目录下面有个pear.bat,运行一下.安装完了以后,再运行 pear install DB.