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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
php split汉字
Jun 05 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
Jan 17 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP callback函数使用方法和注意事项
Jan 23 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
PHP fopen函数用法实例讲解
Feb 15 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
laravel-admin 中列表筛选方法
Oct 03 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
初识PHP中的Swoole
2016/04/05 PHP
PHP MVC框架skymvc支持多文件上传
2016/05/26 PHP
php多线程并发实现方法
2016/09/30 PHP
JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码
2010/11/09 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
Node.js的npm包管理器基础使用教程
2016/05/26 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
Python实现注册登录系统
2017/08/08 Python
python类中super() 的使用解析
2019/12/19 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
HTML5中的网络存储实现方式
2020/04/28 HTML / CSS
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
董事长职责范文
2013/11/08 职场文书
保安自我鉴定范文
2013/12/08 职场文书
陈欧广告词
2014/03/14 职场文书
活动总结报告格式
2014/05/09 职场文书
2014年电厂工作总结
2014/12/04 职场文书
还款承诺书范本
2015/01/20 职场文书
找规律教学反思
2016/02/23 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
pandas中DataFrame检测重复值的实现
2021/05/26 Python
分析并发编程之LongAdder原理
2021/06/29 Java/Android
node快速搭建后台的实现步骤
2022/02/18 NodeJs
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫