用PHP连接Oracle数据库

通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。

PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。你的PHP安装选项应该可以支持两者的使用。

连接

<?
if ($conn=Ora_Logon("user@TNSNAME","password"))
{ echo "SUCCESS ! Connected to database\n";
}else
{echo "Failed :-( Could not connect to database\n";}
Ora_Logoff($conn);
phpinfo();
?>

以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。

查询

假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子:

function PRintoraerr($in_cur)
{
// 检查Oracle是否出错
// 如果存在错误则显示
// 当指针被激活时每次请求Oracle后调用该函数
if(ora_errorcode($in_cur))
echo "Oracle code - ".ora_error($in_cur)."\n";
return;
}
if (!($conn=ora_logon("user@TNSNAME","password")))
{echo "Connection to database failed\n";
exit;
}
echo "Connected as connection - $conn \n";
echo "Opening cursor ... \n";
$cursor=ora_open($conn); printoraerr($cursor);
echo "Opened cursor - $cursor \n";
$qry="select user,sysdate from dual";
echo "Parsing the query $qry ... \n";
ora_parse($cursor,$qry,0); printoraerr($cursor);
echo "Query parsed \n";
echo "Executing cursor ... \n";
ora_exec($cursor); printoraerr($cursor);
echo "Executed cursor \n";
echo "Fetching cursor ... \n";
while(ora_fetch($cursor))
{
$user=ora_getcolumn($cursor,0); printoraerr($cursor);
$sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);
echo " row = $user, $sysdate \n";
}
echo "Fetched all records \n";
echo "Closing cursor ... \n";
ora_close($cursor);
echo "Closed cursor \n";
echo "Logging off from oracle... \n";
ora_logoff($conn);
echo "Logged off from oracle \n";
?>

时间: 2024-08-06 14:49:40

用PHP连接Oracle数据库的相关文章

通过ASP.NET连接Oracle数据库实例教程

通过ASP.NET连接Oracle数据库实例教程 长期以来,我一直用的是 MS SQL Server / Access 数据库,通过.NET 访问MS自家的东西几乎没碰到过什么麻烦.最近项目中要用 Oracle 作为数据库,学习研究了一些 .NET 访问Oracle 的东西,发现问题倒真的不少. 1.System.Data.OracleClient 和 System.Data.OleDb 命名空间 虽然通过这两个命名空间的类都可以访问 Oracle 数据库,但和 SQL Server 类似的(S

JDBC连接Oracle数据库常见问题及解决方法

oracle|解决|数据|数据库|问题 Jbuilder正确连接 oracle 9i需要注意的几个问题 oracle8以上的应该都使用classes12.jar文件作为jdbc驱动: 正确设置windows的classpath和jbuilder中的enterprise setup .configure libraries,将casses12.jar路径正确添加到上述需要设置的地方: 进入database pilot,在database pilot中,file---new 在driver列表中如果

JSP连接ORACLE数据库时注意的一些问题

js|oracle|数据|数据库|问题 一.如何去处理Clob.BLOB的大类型 CLOB可用于存放大文本数据,最多可存储4GB数据,在应用开发中比较常见.java提供的sql.Clob类与之对应.它提供两个方法来读取Clob的数据: getCharacterStream() 方法返回按unicode编码的输入流(java.io.Reader对象) getAsciiStream() 方法返回按ASCII编码的输入流(java.io.InputStream对象) 所以如果你的数据库中有可能存储中文

Asp.Net连接Oracle数据库的例子

asp.net|oracle|数据|数据库 Asp.Net连接Oracle数据库的例子 刚接触asp.net,发现在 .Net Framework 1.1版中,直接就有System.Data.OracleClient类库, 用于访问Oracle数据库,不过我这里好像还是1.0 版本的,不支持该对象. 这里是一个通过oledb访问数据库的例子,与在asp中的差不多,能够访问大多数的数据库,比如access之类的. <%@ Page Language="VB" %> <%

Perl连接Oracle数据库

上次讲了在linux下安装Oracle,安装完之后可以用netac来配置远程数据库的本地命名. 要在perl下面连接oracle数据库,首先必须安装DBI和DBD for Oracle. 下面是一段perl程序 #!/usr/bin/perl use DBI; $dbname="oralce"; $user="user"; $passwd="password"; $dbh=""; $dbh = DBI->connect(

JDBC连接Oracle数据库出现Io 异常

环境:Oracle11g + MyEclipse 6.5 + JDK1.6 问题:JDBC连接Oracle数据库出现以下错误: java.sql.SQLRecoverableException: Io 异常: The Network Adapter could not establish the connection at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101) at oracle.

.net程序远程连接Oracle数据库

.net 远程连接Oracle数据库看起来挺简单的,但实际做起来还是遇到不少问题.把我今天折腾这个 东西的经验给大家共享吧. 访问 oracle 数据库的方式很多,我用的是 OleDbConnection,这个没什么好说的,代码如下: 1. 连接代码 _OleDbConnection = new OleDbConnection(connectionString); _OleDbConnection.Open(); 2.连接字符串 远程连接的连接字符串可以这样写 provider=MSDAORA;

Windows server2008 搭建ASP接口访问连接oracle数据库全过程记录

真的是太不容易了,以前的时候在window server 2003上面搭建了一套asp+oracle的接口系统,就费了好大的劲儿,其实那会迷迷瞪瞪的也不知道怎么的就弄好了,也懒得管了.OK,从昨天到今天打算把接口从测试环境部署到公网环境上去的时候就出现了各种各样的问题,这次一定得记录一下. 先来说一下这套接口系统的整体方案: 之所用选用asp是因为属于轻量级的接口系统,只需要修改好了以后复制粘贴上去接口就立即生效,而不需要像java系的接口程序要用tomcat打包.上传.部署这样的.那这个系统就

spring mvc-关于myeclipse连接Oracle数据库问题

问题描述 关于myeclipse连接Oracle数据库问题 详情: 2016-2-16 20:23:57 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [SpringMVC] in context with path [/BiYe] threw exception [Request processing failed; nested exception is org.s

delphi连接数据库-Delphi xe3连接Oracle数据库

问题描述 Delphi xe3连接Oracle数据库 Delphi xe3连接Oracle数据库怎么连啊 已下载pl/SQL developer 跪求大神解答 卡住好几天了 解决方案 http://zhidao.baidu.com/link?url=1UCUSJ7E_JOp4N_F9abyjW1emoNy9zhKOG82QhoVdL0YvEjX-FegxCCVV-759KW-gxu8S5aG2t-vD3LppN9dt_ 解决方案二: 本地要装ORCLE 客户端