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 相关文章推荐
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
php遍历文件夹所有文件子文件夹函数代码
Nov 27 PHP
php查看请求头信息获取远程图片大小的方法分享
Dec 25 PHP
php中time()与$_SERVER[REQUEST_TIME]用法区别
Nov 19 PHP
PHP基于工厂模式实现的计算器实例
Jul 16 PHP
php开发微信支付获取用户地址
Oct 04 PHP
php实现登录tplink WR882N获取IP和重启的方法
Jul 20 PHP
php版微信自动获取收货地址api用法示例
Sep 22 PHP
PHP实现添加购物车功能
Mar 06 PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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和MySql中计算时间差的方法
2011/04/22 PHP
PHP中error_log()函数的使用方法
2015/01/20 PHP
php使用GD实现颜色渐变实例
2015/06/02 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
javascript高亮效果的二种实现方法
2008/09/14 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
js实现的折叠导航示例
2013/11/29 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
JavaScript实现Base64编码转换
2016/04/23 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
简单介绍Python中的struct模块
2015/04/28 Python
Python环境搭建之OpenCV的步骤方法
2017/10/20 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
Keras实现DenseNet结构操作
2020/07/06 Python
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
办公室文员工作自我评价
2013/12/01 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
土木工程专业本科生求职信
2014/10/01 职场文书
大一学生个人总结
2015/02/15 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
团组织关系介绍信
2019/06/24 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android