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 相关文章推荐
把从SQL中取出的数据转化成XMl格式
Oct 09 PHP
php 调用远程url的六种方法小结
Nov 02 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
Jun 28 PHP
php cli换行示例
Apr 22 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
PHP生成条形图的方法
Dec 10 PHP
功能强大的php文件上传类
Aug 29 PHP
php探针不显示内存解决方法
Sep 17 PHP
laravel 模型查询按照whereIn排序的示例
Oct 16 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 PHP
详解Laravel框架的依赖注入功能
May 27 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
PHP数据流应用的一个简单实例
2012/09/14 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP实现将视频转成MP4并获取视频预览图的方法
2015/03/12 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
jquery ui dialog里调用datepicker的问题
2009/08/06 Javascript
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
javascript时区函数介绍
2012/09/14 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
AngularJS中的拦截器实例详解
2017/04/07 Javascript
利用vue.js实现被选中状态的改变方法
2018/02/08 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
Vue的transition-group与Virtual Dom Diff算法的使用
2019/12/09 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
一篇文章带你从零快速上手Rollup
2020/09/07 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python使用Tesseract库识别验证
2018/03/21 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
python实现图书借阅系统
2019/02/20 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
python列表返回重复数据的下标
2020/02/10 Python
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
家长评语和期望
2014/02/10 职场文书
运动会稿件100字
2014/02/21 职场文书
情况说明书格式范文
2014/05/06 职场文书
综合素质自我评价怎么写
2014/09/14 职场文书
同事打架检讨书
2015/05/06 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python