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 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP 面向对象 PHP5 中的常量
May 05 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 PHP
PHP扩展开发教程(总结)
Nov 04 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
根据key删除数组中指定的元素实现方法
Mar 02 PHP
php上传excel表格并获取数据
Apr 27 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
php 使用 __call实现重载功能示例
Nov 18 PHP
PHP7 整型处理机制修改
Mar 09 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
50个PHP程序性能优化的方法
2014/06/02 PHP
Codeigniter控制器controller继承问题实例分析
2016/01/19 PHP
jquery入门—编写一个导航条(可伸缩)
2013/01/07 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
JavaScript不刷新实现浏览器的前进后退功能
2014/11/05 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
Python切片用法实例教程
2014/09/08 Python
python实现ipsec开权限实例
2014/11/11 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python2.7到3.x迁移指南
2018/02/01 Python
python实现整数的二进制循环移位
2019/03/08 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
Jeep牧马人、切诺基和自由人零配件:4 Wheel Drive Hardware
2017/07/02 全球购物
英国最大的女士服装零售商:Bonmarché
2017/08/17 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
SQL Server里面什么样的视图才能创建索引
2015/04/17 面试题
自荐信格式范文
2013/10/07 职场文书
市场部规章制度
2014/01/24 职场文书
老公爱的承诺书
2014/03/31 职场文书
金融管理专业求职信
2014/07/10 职场文书
农村文化活动总结
2014/08/28 职场文书
财政局个人总结
2015/03/04 职场文书
环卫处个人工作总结
2015/03/04 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS