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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
使用PHP数组实现无限分类,不使用数据库,不使用递归.
Dec 09 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
Dec 29 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
phpmyadmin打开很慢的解决方法
Apr 21 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
Oct 26 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 PHP
关于PHP5.6+版本“No input file specified”问题的解决
Dec 11 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
用PHP制作静态网站的模板框架
2006/10/09 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
Javascript学习笔记之 对象篇(四) : for in 循环
2014/06/24 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
javascript同步服务器时间和同步倒计时小技巧
2015/09/24 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
NodeJS使用formidable实现文件上传
2016/10/27 NodeJs
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
轻松学习JavaScript函数中的 Rest 参数
2019/05/30 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
[02:16]2018年度CS GO最具人气选手-完美盛典
2018/12/16 DOTA
使用python 获取进程pid号的方法
2014/03/10 Python
python在windows命令行下输出彩色文字的方法
2015/03/19 Python
Python实现随机漫步功能
2018/07/09 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
python3 自动打印出最新版本执行的mysql2redis实例
2020/04/09 Python
员工拓展培训方案
2014/02/15 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
请假条格式范文
2014/04/10 职场文书
党员干部学习三严三实心得体会
2016/01/05 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA