帝国CMS进入开源时代
 帝国论坛技术交流区网络编程连接access数据库成功,为什么在不同的web环境下select语句反应不同? 【本版专题贴子】  
22G硬防帝国空间1G100元/5G280元
帝国CMS模板下载中心
测试:生成20万数据共用107分钟
《帝国下载系统》全面免费
帝国备份王2008版发布
1G双线帝国空间+200M数据库=158
站长工具 - dotool.cn
广告联系QQ:627174919
 1/2     1 2 ›› ›|
主题:连接access数据库成功,为什么在不同的web环境下select语句反应不同? [加入收藏夹]   

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》基础教程下载】   [第 1 楼]
连接access数据库成功,为什么在不同的web环境下select语句反应不同?
代码如下:


<?
$connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("../data/data.mdb");
$connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC);
if (!$connid) {
   echo "连接access数据库失败!";
   exit;
}

$s_query="select top 1 SpecialID from Special";
$s_result=odbc_do($connid,$s_query);
$zeronum=odbc_result($s_result,1);              //起始值
echo $zeronum;

?>




现在有两个环境,一个是本地环境:winxp+apache1.33(2.05)+php4.4.2。一个是服务器环境:win2003+iis6+php4.4.1。
在连接数据库正常的情况下,为什么在本地可以echo zeronum的值,而在服务器上确显示空白?说明:本地和服务器上的access文件为一致的。

请教老大,odbc_do和odbc_result对access的版本等因素有要求或者我的写法不适应php.ini的配置的原因?

[该贴被修改 2 次,最后修改时间 2006-06-16 16:16:48 ]



2006-06-16 16:08:49 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :47811
经验值   :109082
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 2 楼]

服务器上没配好odbc?



[零基础入门教程] [模板制作教程] [采集使用教程]
2006-06-16 17:09:22 已设置保密 顶部 回复 引用 报告 编辑 删除

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》基础教程下载】   [第 3 楼]

apache上不用配置吗?问的很菜。apache默认支持odbc吗?





2006-06-16 17:16:52 已设置保密 顶部 回复 引用 报告 编辑 删除

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 4 楼]

有没有探针可以检测一下?老大推荐一下,谢谢。




2006-06-16 17:18:51 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :47811
经验值   :109082
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》基础教程下载】   [第 5 楼]

echo $connid呢?



[零基础入门教程] [模板制作教程] [采集使用教程]
2006-06-16 17:20:29 已设置保密 顶部 回复 引用 报告 编辑 删除

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 6 楼]

老大看看这是我上传上去的探针。
http://new.tingge.com/phpcheck.php




2006-06-16 17:53:29 已设置保密 顶部 回复 引用 报告 编辑 删除

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》基础教程下载】   [第 7 楼]

为什么要echo  $connid  ???




2006-06-16 17:55:40 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :47811
经验值   :109082
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 8 楼]

没有为什么,只想知道结果



[零基础入门教程] [模板制作教程] [采集使用教程]
2006-06-17 10:06:33 已设置保密 顶部 回复 引用 报告 编辑 删除

zhonghai
用户头衔:举人 *

精华贴   :0
发贴数   :166
经验值   :734
注册时间:2005-04-12
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》基础教程下载】   [第 9 楼]

echo $connid;

的结果是:Resource id #1

以上是在服务器上检测的结果。

我还在我的笔记本上测试,结果又不同,结果如下:
Warning: odbc_connect(): SQL error: [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序, SQL state IM002 in SQLConnect in E:\server\sqlswitch\access.php on line 3
连接access数据库失败!

而我找了好几个php探针,都显示 ODBC数据库连接已经启用。

分析:首先,我怀疑这几个探针是否能够准确判断,在我笔记本上探针检测到odbc数据库连接可用,但我运行这个代码却显示未指定默认驱动程序,前后矛盾。
      而在服务器上的结果显示,可以表明已经连接数据库成功。但是却odbc的函数却不起作用,不能select出所要的值。


真的让我不能判断是怎么回事?

[该贴被修改 2 次,最后修改时间 2006-06-17 23:22:05 ]



2006-06-17 22:56:40 已设置保密 顶部 回复 引用 报告 编辑 删除

wm_chief
用户头衔:管理员

精华贴   :21
发贴数   :47811
经验值   :109082
注册时间:2002-10-30
信息 搜索 好友 发送悄悄话 《帝国网站管理系统》零基础实例入门教程】   [第 10 楼]

你没加那个access加到odbc里?



[零基础入门教程] [模板制作教程] [采集使用教程]
2006-06-18 09:26:26 已设置保密 顶部 回复 引用 报告 编辑 删除
 1/2     1 2 ›› ›|

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1