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产生随机字符串函数
Dec 06 PHP
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
反射调用private方法实践(php、java)
Dec 21 PHP
php上传大文件设置方法
Apr 14 PHP
php微信开发接入
Aug 27 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
Dec 08 PHP
JS+PHP实现用户输入数字后显示最大的值及所在位置
Jun 19 PHP
php实现websocket实时消息推送
Mar 30 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 咖啡文化
用HTML/JS/PHP方式实现页面延时跳转的简单实例
2016/07/18 PHP
表单JS弹出填写提示效果代码
2011/04/16 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
IE8提示Invalid procedure call or argument 异常的解决方法
2012/09/30 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
自动适应iframe右边的高度
2016/12/22 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
使用原生js+canvas实现模拟心电图的实例
2017/09/20 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
面试题:react和vue的区别分析
2019/04/08 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
重命名批处理python脚本
2013/04/05 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python实现任意位置文件分割的实例
2018/12/14 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
python3实现往mysql中插入datetime类型的数据
2020/03/02 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
室内设计专业学生的自我评价分享
2013/11/27 职场文书
村委会主任先进事迹
2014/01/15 职场文书
《我的第一本书》教学反思
2014/02/15 职场文书
材料员岗位职责
2014/03/13 职场文书
护士求职自荐信范文
2014/03/19 职场文书
学习经验演讲稿
2014/05/10 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
linux下安装redis图文详细步骤
2021/12/04 Redis