PHP如何透过ODBC来存取数据库


Posted in PHP onOctober 09, 2006

使用的环境
先建立一个测试用的数据库
接着建立一个ODBC连结
再建个测试用的PHP Script
咱们来测试吧
使用的环境

本文件主要是在Win32的环境下作说明, 您需要的是台跑Windows 9x/NT/2000的计算机, 并装有任何一种web server和PHP3或PHP4, 且可正确执行PHP Script. 并有一种以上的SQL数据库软件, 例如:Access...

本文件以MS-Access数据库来作说明, 其它种的数据库端, 皆可以类似的方法来作ODBC连结.

先建立一个测试用的数据库

进入MS-Access, 建立一个odbctest.mdb的档案.
开始建立一个数据表(table).
此数据表我们给它两个字段: id 和 name.

将此资料表命名为 Class .

接着我们输入一些数据.例如:


接着建立一个ODBC连结
开启 控制台 里的 "ODBC 数据来源" .


选择 "系统数据来源名称" 页.
点选 "新增..." 按钮.
选择你想使用的 ODBC 驱动程序. 在此请选择 "Microsoft Access Driver", 当然若您使用其它种的数据库端, 就选择该数据库的ODBC Driver.
点选 "完成" 按钮.
接着会出现这个窗口, 来作进一步的设定.

输入数据来源名称为 "WebDB" . 描述的部分可以随便输入, 自己了解就可以了.
按 "选取..." 钮, 输入您欲连结的数据库档案位置. 例如: 这里的 c:\odbctest.mdb
接着再点选 "进阶..." 钮. 会出现这个画面:

您需要输入的部分是 : 登入名称和密码, 在此我们先分别设成 'webuser' 和 'webpassword'.
OK了. ODBC的设定部分已经完成了.
再建个测试用的PHP Script
以下是个测试用的PHP Script内容, 请将它save起来, 例如存到您web server的文件根目录.
<?
function Error_Handler( $msg, $cnx )
{
    echo "$msg \n";
        // 为避免占用连结, 在程序结束前close掉是很重要的.
    odbc_close( $cnx);
    exit();
}

    // 建立一个 ODBC 连结, 传回至 $cnx
    $cnx = odbc_connect( 'WebDB' , 'webuser', 'webpassword' );

//    在测试时若有权限上问题, 也许你可以使用 superadmin 来存取 :
//    $cnx = odbc_connect( 'WebDB' , [sa login] , [sa password] );

    if( ! $cnx ) {
        Error_handler( "在 odbc_connect 有错误发生" , $cnx );
    }

    // 送出一个简单的 odbc query . 传回一个 odbc 指标
    $cur= odbc_exec( $cnx, "select id,name from Class" );
    if( ! $cur ) {
        Error_handler( "在 odbc_exec 有错误发生( 没有指标传回 ) " , $cnx );
    }

    echo "<table border=1><tr><th>座号</th><th>姓名</th></tr>\n";
    $num_row=0;

        // 取出成功传回的数据
    while( odbc_fetch_row( $cur ) )
    {
        $num_row++;
            // 抓取 "id" 字段的数据
        $id= odbc_result( $cur, 1 );
            // 抓取 "name"字段的数据
        $name= odbc_result( $cur, 2 );
        echo "<tr><td>$id</td><td>$name</td></tr>\n";
    }

    echo "<tr><td colspan=2>共 $num_row 人 </td></tr></table>";

    odbc_close( $cnx);

?>

咱们来测试吧

从您的网页浏览器, 开启浏览这个测试用的PHP Script.

如果一切正确无误的话, 您应该可以看到以下的数据:

座号 姓名
1 Ernest
2 Norman
3 PHP/Zend RC
4 ODBCCooler
5 我是五号
6 六号就是我
共 6 人  

PHP 相关文章推荐
人大复印资料处理程序_输入篇
Oct 09 PHP
PHP新手上路(九)
Oct 09 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
Sep 13 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
thinkPHP事务操作简单案例分析
Oct 17 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
在线短消息收发的程序,不用数据库
Oct 09 #PHP
PHP网站提速三大“软”招
Oct 09 #PHP
用PHP发电子邮件
Oct 09 #PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 #PHP
一段php加密解密的代码
Oct 09 #PHP
PHP开发文件系统实例讲解
Oct 09 #PHP
用PHP读取IMAP邮件
Oct 09 #PHP
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
基于递归实现的php树形菜单代码
2014/11/19 PHP
Smarty变量用法详解
2016/05/11 PHP
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
2020/11/03 Javascript
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
浅谈python 中的 type(), dtype(), astype()的区别
2020/04/09 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
Timex手表官网:美国运动休闲手表品牌
2017/01/28 全球购物
消防应急演练方案
2014/02/12 职场文书
行政办公室岗位职责
2014/03/18 职场文书
暑假安全保证书
2015/02/28 职场文书
个人廉政承诺书
2015/04/28 职场文书
党员反邪教心得体会
2016/01/15 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
如何利用React实现图片识别App
2022/02/18 Javascript
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
python自动获取微信公众号最新文章的实现代码
2022/07/15 Python