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 相关文章推荐
让你的网站首页自动选择语言转跳
Dec 06 PHP
PHP小技巧搜集,每个PHPer都来露一手
Jan 02 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
Jun 23 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
手把手教你打印出PDF(关于fpdf的简单应用)
Jun 25 PHP
怎样使用php与jquery设置和读取cookies
Aug 08 PHP
php比较两个绝对时间的大小
Jan 31 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 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
VFP与其他应用程序的集成
2006/10/09 PHP
动易数据转成dedecms的php程序
2007/04/07 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jQuery获得页面元素的绝对/相对位置即绝对X,Y坐标
2014/03/06 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
深入理解python函数递归和生成器
2016/06/06 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
pytorch实现用Resnet提取特征并保存为txt文件的方法
2019/08/20 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
英国派对礼服和连衣裙购物网站:TFNC London
2018/07/07 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
Weblogc domain问题
2014/01/27 面试题
大学共青团员个人自我评价
2014/04/16 职场文书
加强作风建设工作总结
2014/10/23 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
60句有关成长的名言
2019/09/04 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
python语言中pandas字符串分割str.split()函数
2022/08/05 Python