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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
Uncaught exception com_exception with message Failed to create COM object
Jan 11 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php生成随机密码自定义函数代码(简单快速)
May 10 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP获取文件扩展名的4种方法
Nov 24 PHP
PHP实现仿百度文库,豆丁在线文档效果(word,excel,ppt转flash)
Mar 10 PHP
Zend Framework实现多文件上传功能实例
Mar 21 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
Apr 02 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 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制作图型计数器的例子
2006/10/09 PHP
详解PHP显示MySQL数据的三种方法
2008/06/05 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
2014/06/12 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
javascript string字符串优化问题
2011/07/31 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
js截取小数点后几位的写法
2013/11/14 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
jQuery中next方法用法实例
2015/04/24 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
js module大战
2019/04/19 Javascript
create-react-app中添加less支持的实现
2019/11/15 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
解决django后台管理界面添加中文内容乱码问题
2019/11/15 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
党委工作总结2015
2015/04/27 职场文书