所在的位置: php >> php发展 >> 开始通过PHP使用ODBC

开始通过PHP使用ODBC

使用PHP实现通用数据库连接性的初学者指南

PHP是动态网站开发最常使用的编程语言之一。PHP相当强大和有效,并且还十分简单,对于初学者,因为该语言的灵活性,它将是一个不错的语言学习选择。

单独从语言角度而言,PHP是一门不错的语言(尤其在与XHTML结合使用时)。但是,大多数应用程序需要一种简便的数据存储方法,通常由数据库(比如MySQL或PostgSQL)实现。为了链接到数据存储系统,连接器需要允许使用mysql_query()和pg_query()之类的函数。大多数情况下,这种方法是有效的,但是偶尔地,因为业务需求,可能会要求将数据存储在更容易被人操作的电子表格之类的地方。在这些情况下,需要使用不同类型的连接器来连接数据。

如果您想将SQL发送到非特定数据库系统,并想使用SQL处理您配置的任何数据存储,该怎么做?因为开放数据库连接(OpenDatabaseConnectivity,ODBC)已经创建,并且已经安装了正确的连接器,所以您甚至可以访问Microsoft?Excel?、CSV和其他数据文件类型。

ODBC是一个连接器,它使得PHP开发变得“与数据库连接器无关”。它对数据库(比如MySQL、PostgSQL、SQLite、MicrosoftSQLServer?、IBM?DB?、Sybase、OpenLinkVirtuoso、FileMaker和MicrosoftOffice?Access?)使用像odbc_query()这样的函数。还可以将ODBC用于CSV和Excel电子表格,具体取决于正确的ODBC驱动程序设置。

ODBC是什么?

ODBC是一个软件驱动程序系统,用于连接编程语言与数据存储。ODBC是一个免费的开放源码系统,出现于年,它试图通过编程语言和数据库查询访问(SQL标准化)来标准化连接方法,比如功能和配置。

ODBC的作用是充当接口或连接器,它具有双重设计目标:首先,对于ODBC系统,它充当的是编程语言系统,其次,对于数据存储系统,它充当的是ODBC系统。所以,ODBC需要一个“对ODBC而言是编程语言”的驱动程序(例如PHP-ODBC库)和一个“对数据存储系统而言是ODBC”的驱动程序(比如MySQL-ODBC库)。除了ODBC系统本身之外,ODBC还可以处理数据源的配置,允许数据源和编程语言之间存在模糊性。

如何使PHP与SQL相互适应?

PHP是一种编程语言,通常用作服务器端语言,用来加速动态网站的发展。因为是一种动态的、弱类型语言,PHP非常灵活。许多开发人员都非常熟悉PHP,因为它受到C编程语言的影响。PHP是一个免费的开放源码编程语言,出现于5年,您可以通过连接器对数据库使用PHP,以生成XHTML和HTML,然后在Web浏览器中呈现内容。

SQL是用于询问数据存储的一种跨平台语言,主要用于关系数据库,但它有一些过程性的、面向对象的对象关系扩展。现代的SQL实现可以在MySQL、PostgSQL、SQLite、DB(商业和Expss-C版本)、MicrosoftSQLServer、OpenLinkVirtuoso、FileMaker和MicrosoftAccess中找到,所有这些都可以通过连接系统(ODBC)使用编程语言(比如PHP)来实现。

设置ODBC

让我们来看一下如何将典型的Linux-Apache-PHP-MySQL(LAMP)环境转换为灵活的Linux-Apache-PHP-ODBC(LAPO)环境。在Linux?上,有两个针对ODBC驱动程序的常规选项:iODBC和unixODBC。这两套驱动程序各有自己的优缺点,但它们都能处理不同的数据库集。我选择使用iODBC,因为它在连接到Web编程语言(比如PHP和Ruby)时通常表现得很强大,此外,它在处理ODBC友好的数据库(比如MySQL和OpenLinkVirtuoso)时很稳定。但这只是一种选择,您可能想调查自己的效率要求。除了内部的细微差别,从连接的角度来看,iODBC和unixODBC的使用方式与编程语言(PHP功能是相同的)和数据库(例如,MySQL将不受影响)是相同的。

iODBC和unixODBC都可以在LinuxSoftwaPackageManagers中使用。例如,在Debian、Ubuntu或LinuxMint命令行中,都可以运行sudoapt-getinstalliodbc。

其他环境中的ODBC

AppleMacOSX会随iODBC一起预安装,因此没必要再安装任何东西。Windows操作系统也有自己的ODBC驱动程序。

使用ODBC连接数据库

如果您还没有安装数据库系统,比如MySQL或PostgSQL,请安装一个。然后安装“ODBC到数据库”的连接器。此连接器因数据库的不同而各异,但是,以MySQL为例,可以通过安装从MySQL网站下载的与操作系统相关的驱动程序来安装连接器。

Linux发行版支持apt,您可以从控制台运行以下命令:sudoapt-getinstalllibmyodbc。

您必须配置您的ODBC客户端,以便通过运行程序(比如iodbcadm-gtk)来安装数据库。您还可以手动编辑iODBC文件。(在Linux中,该文件通常位于/etc/iodbc.ini中。)

示例:使用ODBC连接PHP

接下来,您必须安装PHPODBC驱动程序。通过将iODBC或unixODBC添加到PHP编译脚本中(非常复杂),或者通过安装PHP-ODBC库,都可以实现PHPODBC驱动程序的安装。在基于apt的发行版中,可以使用以下命令:sudoapt-getinstallphp5-odbc。

可通过在交互模式下运行PHP(php-a)来测试流量。这将打开PHP交互控制台,在那里您可以使用与清单1中的示例类似的方式进行交互。

清单1.命令行ODBC连接

php$conn=odbc_connect("DRIVER={MySQLODBC.51Driver};Server=localhost;Database=phpodbcdb","username","password");php$sql="SELECT1astest";php$rs=odbc_exec($conn,$sql);phpodbc_fetch_row($rs);phpecho"\nTest\n—--\n”.odbc_sult($rs,"test")."\n";Test----1phpodbc_close($conn);phpexit;

让我们来分析一下清单1中的代码:

使用PHP中的odbc_connect()函数建立一个连接。该函数将ODBC连接器字符串、用户名称和密码作为参数。连接器字符串应与odbc.ini文件匹配,以确保它与预先安排的相符。将一个变量实例化为字符串,该字符串代表了您的SQL语句。使用odbc_exec函数执行该SQL语句,此函数将接受您的连接和您的SQL字符串,并返回一个结果集。使用odbc_fetch_row()仅从结果集中提取一行结果,该函数接受作为参数的结果集。这是一个迭代函数,这意味着如果您再次调用它,会得到结果集中的下一个结果(依此类推,直到结果集中没有结果,如果没有结果,则返回false)。使用函数odbc_sult(),该函数接受结果集和列名称(字符串形式),并返回行迭代程序所指向的行中的单元值。使用odbc_close函数关闭ODBC连接,该函数接受连接本身。通过发送exit命令退出PHP交互模式。

这方法很有用,但在Web应用程序级别上不常使用。如果您想在客户端/服务器样式的Web浏览模式下测试流量,则需要安装一台Web服务器,比如Apache或Lig


转载请注明:http://www.aierlanlan.com/tzrz/9607.html