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 相关文章推荐
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
用PHP和ACCESS写聊天室(十)
Oct 09 PHP
将数组写入txt文件 var_export
Apr 21 PHP
php常用ODBC函数集(详细)
Jun 24 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
Apr 02 PHP
教你如何解密 “ PHP 神盾解密工具 ”
Jun 20 PHP
PHP使用Mysql事务实例解析
Sep 08 PHP
PHP中的数组处理函数实例总结
Jan 09 PHP
php编程每天必学之表单验证
Mar 01 PHP
php错误日志简单配置方法
Jul 11 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
PHP基于array_unique实现二维数组去重
Jul 14 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动态生成虚拟现实VRML网页
2006/10/09 PHP
解决phpmyadmin中文乱码问题。。。
2007/01/18 PHP
APACHE的AcceptPathInfo指令使用介绍
2013/01/18 PHP
PHP错误提示It is not safe to rely on the system……的解决方法
2019/03/25 PHP
YII框架常用技巧总结
2019/04/27 PHP
uploadify 3.0 详细使用说明
2012/06/18 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
Ext GridPanel加载完数据后进行操作示例代码
2014/06/17 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
深入理解vue Render函数
2017/07/19 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
解决vue使用vant轮播组件swipe + flex时文字抖动问题
2021/01/07 Vue.js
对Python中type打开文件的方式介绍
2018/04/28 Python
解决Python找不到ssl模块问题 No module named _ssl的方法
2019/04/29 Python
安装完Python包然后找不到模块的解决步骤
2020/02/13 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
美国市场上最实惠的送餐服务:Dinnerly
2018/03/18 全球购物
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
投标单位介绍信
2015/05/05 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
Java 数组的使用
2022/05/11 Java/Android