当前位置:文档之家› 何在PHP中使用Oracle数据库

何在PHP中使用Oracle数据库

何在PHP中使用Oracle数据库
何在PHP中使用Oracle数据库

在以上版本中,PHP内置了几乎目前所有的数据库处理函数,包括Oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库。

PHP提供了2大类API(应用程序接口)来操作Oracle数据库。一个是标准的Oracle处理函数(ORA) 另一个是Oracle 8调用接口函数(OCI8). 后者只能在Oracle 7或8版本上使用。由于OCI8 提供了很多优化选项,因此只要有可能就应该采用 OCI8 接口。这里我们分别用这二种函数集进行了演示。

首先本文的前提假设你已经装好了 Oracle数据库环境和 PHP 开发环境. 如果不懂也没多大关系,网上有很多相关的好文章可以参考。

第一步:创建一个实验用的数据库

这个问题你可以请你的数据库管理员或参考Oracle用户手册处理,这里不再多讲

用 ORA 建立数据表

即使你已经创建好了数据表,也请看看本段文字。它可以告诉你如何用PHP+SQL的技术操作Oracle

在本例中我们创建了一个用于存放个人email的数据表

相关PHP代码:

PutEnv("ORACLE_SID=ORASID");

$connection = Ora_LOGOn ("username", "password");

if ($connection == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."

";

exit;

}

$cursor = Ora_Open ($connection);

if ($cursor == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."

";

exit;

}

$query = "create table email_info " .

"(fullname varchar(255), email_address varchar(255))";

$result = Ora_Parse ($cursor, $query);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

$result = Ora_Exec ($cursor);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

Ora_Commit ($connection);

Ora_Close ($cursor);

Ora_LOGOff ($connection);

>

为了处理Oracle数据库,我们首先要和Oracle建立一个联结。

语法是 Ora_LOGOn (user, password),返回一个connectID..

提醒: 在此之前我们还必须设置环境变量: ORACLE_SID的值.

现在,我们可以通过该联结的 ID对Oracle进行交互式操作了。数据表名字就叫email_info 吧。该表由2个域组成,一个存储个人全名,(如:晓月)一个存储email地址如)

还需要一个游标 Ora_Open. 该游标常常用来枚举数据。我们用 Ora_Parse 或 Ora_Exec 查询Oracle的结果集. Ora_Parse 效验SQL语法正确性而 Ora_Exec 则执行相应的SQL 语句. 如果这一切都正常运行,那么我们就运行 Ora_Commit来确认.

Create A Table Using OCI

下面我们将建立一个email个人信息簿。这次采用OCI8 API指令

相关PHP代码:

PutEnv("ORACLE_SID=ORASID");

$connection = OCILOGOn ("username", "password");

if ($connection == false){

echo OCIError($connection)."

";

exit;

}

$query = "create table email_info " .

"(fullname varchar(255), email_address varchar(255))";

$cursor = OCIParse ($connection, $query);

if ($cursor == false){

echo OCIError($cursor)."

";

exit;

}

$result = OCIExecute ($cursor);

if ($result == false){

echo OCIError($cursor)."

";

exit;

}

OCICommit ($connection);

OCILOGOff ($connection);

>

我们可以看到这2段代码语法几乎都一样,区别仅仅函数名字不同; 其次,在OCI8中我们不需要专门运行打开游标的指令,在调用 OCIParse 系统就自动返回了一个游标ID.

利用 ORA 向数据表 'email_info' 输入数据

当用户浏览这段脚本时,显示一个由姓名、email输入域组成的表单;当用户添好数据点击提交时,脚本程序将把这姓名、email保存到'email_info'数据表中。

相关PHP代码:

if ($submit == "click"){

PutEnv("ORACLE_SID=ORASID");

$connection = Ora_LOGOn ("username","password");

if ($connection == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." ";

exit;

}

$cursor = Ora_Open ($connection);

if ($cursor == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." ";

exit;

}

$query = "insert into email_info values ('$fullname', '$email')"; $result = Ora_Parse ($cursor, $query);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

$result = Ora_Exec ($cursor);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

Ora_Commit ($connection);

Ora_Close ($cursor);

Ora_LOGOff ($connection);

}

else{

echo '

<FORM action= method=post>

请输入姓名

<INPUT name=fullname></INPUT>

请输入Email地址

<INPUT name=email></INPUT>

<INPUT name=submit type=submit value=click></INPUT>

</FORM>

';

}

>

利用OCI向数据表 'email_info' 输入数据

同上,只不过用OCI来写

相关PHP代码:

if ($submit == "click"){

PutEnv("ORACLE_SID=ORASID");

$connection = OCILOGOn ("username","password");

if ($connection == false){

echo OCIError($connection)."

";

exit;

}

$query = "insert into email_info values ('$fullname', '$email')"; $cursor = OCIParse ($connection, $query);

if ($cursor == false){

echo OCIError($cursor)."

";

exit;

}

$result = OCIExecute ($cursor);

if ($result == false){

echo OCIError($cursor)."

";

exit;

}

OCICommit ($connection);

OCILOGOff ($connection);

}

else{

echo '

<FORM action= method=post>

请输入姓名

<INPUT name=fullname></INPUT>

请输入 Email 地址

<INPUT name=email></INPUT>

<INPUT name=submit type=submit value=click></INPUT>

</FORM>

';

}

>

对了,这段脚本必须存为,因为在调用的页面中指定为表单处理程序

利用ORA列出全部数据表'email_info'中的数据

下面,我们将逐条读出数据库的内容,并以HTML表格形式显示'email_info'数据表中的数据

相关PHP代码:

PutEnv("ORACLE_SID=ORASID");

$connection = Ora_LOGOn ("username","password");

if ($connection == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." ";

exit;

}

$cursor = Ora_Open ($connection);

if ($cursor == false){

echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." ";

exit;

}

$query = "select * from email_info";

$result = Ora_Parse ($cursor, $query);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

$result = Ora_Exec ($cursor);

if ($result == false){

echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."

";

exit;

}

echo " ";

echo " Full Name Email Address

";

while (Ora_Fetch_Into ($cursor, &$values)){

$name = $values[0];

$email = $values[1];

echo " $name $email

";

}

echo " ";

Ora_Close ($cursor);

Ora_LOGOff ($connection);

>

程序运行的浏览效果如下所示:

姓名 Email 地址

春花

秋月

... ...

利用OCI列出全部数据表'email_info'中的数据

同上,只不过用OCI来写

相关PHP代码:

PutEnv("ORACLE_SID=ORASID");

$connection = OCILOGOn ("username","password"); if ($connection == false){

echo OCIError($connection)."

";

exit;

}

$query = "select * from email_info";

$cursor = OCIParse ($connection, $query);

if ($cursor == false){

echo OCIError($cursor)."

";

exit;

}

$result = OCIExecute ($cursor);

if ($result == false){

echo OCIError($cursor)."

";

exit;

}

echo " ";

echo " Full Name Email Address

";

while (OCIFetchInto ($cursor, $values)){ $name = $values[0];

$email = $values[1];

echo " $name $email

";

}

echo " ";

OCILOGOff ($connection);

>

程序运行的浏览效果如下所示:

姓名 Email 地址

春花

秋月

... ...

本文来自: 站长详细出处参考:

php100视频教程学习笔记

php100视频教程学习笔记 第一讲:2011年1月10日22:02:50 PHP类似于C,Perl,移植性非常好,参考源码多。 lamp:linux wamp:windows WampServer 5:PHP5.2.5 MySQL5 Apache2 PHPMyAdmin2.11.1.1 SQLiteManager 1.2.0 WAMPS display errors, short open tag:短标签模式WampServer2 标签语言:<%..%> ;结束,否则会出现错误。 注释风格:/**/;//;# Unix风格单行注释 学会使用注释来屏蔽符号来调试 第二讲:2011年1月10日22:03:04 弱类型只是局部变量 _和字母开头 标量类型:Boolean integer float(double) string 复合类型:array object " "支持转译字符,''不支持转译字符。 $bo=array(1,2,3); $bo=arrary("A"=>1,"B"=>2); discuz linux 777:最高权限; 775 第三讲:2011年1月10日22:31:46

1、算术运算。 2、赋值运算。 3、比较运算。 4、逻辑运算。 5、递增递减运算。 【+= *= ==只判断值而不判断类型;===完全比较:数值类型和数值FALSE不输出。 &&逻辑与and; ||逻辑或or; xor逻辑异或;先将比较的两边转换成布尔类型的,在执行它们的关 系。得到值为布尔值。 递增递减只能操作变量。$a++ 相当于+1后输出;++$a 先运算后加$a;;$a--;--$a; 做运算赋值以后在输出:$a=6;echo $a++; //输出为6; 】 第四讲:条件语句2011年1月10日22:22:40 1、 if(expr) echo TRUE; else echo FALSE; 2、规范 if(expr){

PHP-Mysql知识总结

PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Sybase,Db2,Oracle,PostgreSQL,Access等,这些数据库PHP都能够安装扩展来支持,一般情况下常说的LAMP架构指的是:Linux、Apache、Mysql、PHP,因此Mysql数据库在PHP中的应用非常广泛,我们会在本章中简单的了解Mysql的操作方法。 数据库扩展 PHP中一个数据库可能有一个或者多个扩展,其中既有官方的,也有第三方提供的。像Mysql常用的扩展有原生的mysql库,也可以使用增强版的mysqli扩展,还可以使用PDO进行连接与操作。 不同的扩展提供基本相近的操作方法,不同的是可能具备一些新特性,以及操作性能可能会有所不同。mysql扩展进行数据库连接的方法: mysqli扩展: PDO扩展

PHP要对数据库进行操作,首先要做的是与数据库建立连接,通常我们使用mysql_connect函数进行数据库连接,该函数需要指定数据库的地址,用户名及密码。 通常我们会先设置一下当前连接使用的字符编码,一般的我们会使用utf8编码。 通过上面的步骤,我们就与数据库建立了连接,可以进行数据操作了。 关闭MySQL数据库 Mysql_close()—关闭数据库连接;

Mysql_select_db()—选择数据库; 执行SQL语句 Mysql_query()—执行一条sql语句 执行MySQL查询 在数据库建立连接以后就可以进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。 对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。

thinkPHP - 数据操作

ThinkPHP 入门系列 T T h h i i n n k k P P H H P F F r r a a m m e e w w o o r r k 1 1. .0 D D a a t t a a A A c c c c e e s s s M M a a n n u u a a l T T h h i i n n k k P P H H P 1 1. .0 数 数据 据操 操作 作指 指南 南 编写:ThinkPHP 文档组 最后更新:2008-06-15

目 目录 录 1 1 版权信息...................................................................................................................................4 2 2 数据操作.. (5) 2.1 数据库访问层...................................................................................................................5 2.2 表和主键.........................................................................................................................6 2.3 属性访问.........................................................................................................................8 2.4 连接数据库....................................................................................................................10 2.5 使用 PDO.......................................................................................................................12 2.6 ActiveRecord..................................................................................................................13 2.7 普通查询.......................................................................................................................18 2.8 条件查询.......................................................................................................................19 2.9 区间查询.......................................................................................................................19 2.10 组合查询....................................................................................................................20 2.11 多字段查询 ................................................................................................................20 2.12 统计查询....................................................................................................................21 2.13 定位查询....................................................................................................................21 2.14 动态查询.. (22) 2.15 SQL 查询 (22) 2.16 事务支持....................................................................................................................23 2.17 延迟查询....................................................................................................................24 2.18 分布式数据库. (41)

数据库作业(3)

兰州交通大学数据库原理及应用作业

概念基础部分: ⒉简述数据库管理系统的功能。 答:数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下 5 个方面。 (1) 数据定义和操纵功能 (2) 数据库运行控制功能 (3) 数据库的组织、存储和管理 (4) 建立和维护数据库 (5) 数据通信接口 ⒋解释关系模型的基本概念:关系、元组、属性、域、关系模式、候选关键字、主键、外键、主属性。 答:关系:一个关系就是一张二维表。 元组:二维表中的行称为元组,每一行是一个元组。 属性:二维表的列称为属性,每一列有一个属性名,属性值是属性的具体值。 域:是属性的取值范围。 关系模式:对关系的信息结构及语义限制的描述称为关系模式,用关系名和包含的属性名的集合表示。 候选关键字:如果在一个关系中,存在多个属性(或属性组合)都能用来唯一标识该关系中的元组,这些属性(或属性组合)都称为该关系的候选关键字或候选码,候选码可以有多个。 主键:在一个关系的若干候选关键字中,被指定作为关键字的候选关键字称为该关的主键或主码。 主属性:在一个关系中,包含在任何候选关键字中的各个属性称为主属性。 外键:一个关系的某个属性(或属性组合)不是该关系的主键或只是主键的一部分,却是另一个关系的主码,则称这样的属性为该关系的外键或外码。 6.某网上订书系统,涉及如下信息: (1)客户:客户号、姓名、地址、联系电话。 (2)图书:书号、书名、出版社、单价。 (3)订单:订单号、日期、付款方式、总金额。 其中:一份订单可订购多种图书,每种图书可订购多本;一位客户可有多份订单,一份订单

仅对应一位客户。 (1)根据以上叙述,建立ER模型,要求标注联系类型(可省略实体的属性)。 (2)根据转换规则,将ER模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在)。 (2)关系模式: 客户(客户号,姓名,地址,联系电话,订单号) 图书(书号,书名,出版社,单价) 订单(订单号,日期,付款方式,总金额) 订购(订单号,书号,数量) 8.根据给定的关系模式进行查询。 设有学生-课程关系数据库,它由三个关系组成,它们的模式是:学生S(学号S#,姓名SN,所在系SD,年龄SA)、课程C(课程号C#,课程名CN,先修课号PC#)、SC(学号S#,课程号C#,成绩G)。请用关系代数分别写出下列查询: (1)检索学生的所有情况。 ∏S#, SN, SD, SA(S) (2)检索学生年龄大于等于20岁的学生姓名。 ∏SN(σSA≥20 (S)) (3)检索先修课号为C2的课程号。 ∏C#(σPC#=’C2’ (C)) (4)检索课程号C1的成绩为A的所有学生姓名。 ∏SN(σC#=’C1’∧ G=’A’ (S∞SC)) (5)检索学号为S1的学生选修的所有课程名及先修课号。 ∏CN, PC#(σS#=’S1’(C∞SC)) (6)检索年龄为23岁的学生所选修的课程名。

入侵oracle数据库的一些心得

入侵oracle数据库的一些心得 信息来源: I.S.T.O信息安全团队(https://www.doczj.com/doc/a510721519.html,/I_S_T_O) 一、先看下面的一个贴子: Oracle数据库是现在很流行的数据库系统,很多大型网站都采用Oracle,它之所以倍受用户喜爱是因为它有以下突出的特点: 1、支持大数据库、多用户的高性能的事务处理。Oracle支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性。系统维护具有高的性能,Oracle每天可连续24小时工作,正常的系统操作(后备或个别计算机系统故障) 不会中断数据库的使用。可控制数据库数据的可用性,可在数据库级或在子数据库级上控制。 2、Oracle遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。所以它是一个开放系统,保护了用户的投资。美国标准化和技术研究所(NIST)对Oracle7 SER VER进行检验,100%地与ANSI/ISO SQL89标准的二级相兼容。 3、实施安全性控制和完整性控制。Oracle为限制各监控数据存取提供系统可靠的安全性。Oracle实施数据完整性,为可接受的数据指定标准。 4、支持分布式数据库和分布处理。Oracle为了充分利用计算机系统和网络,允许将处理分为数据库服务器和客户应用程序,所有共享的数据管理由数据库管理系统的计算机处理,而运行数据库应用的工作站集中于解释和显示数据。通过网络连接的计算机环境,Oracl e将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。分布式系统像集中式数据库一样具有透明性和数据一致性。 具有可移植性、可兼容性和可连接性。由于Oracle 软件可在许多不同的操作系统上运行,以致Oracle上所开发的应用可移植到任何操作系统,只需很少修改或不需修改。Oracle

php操作oracle数据库

PHP操作Oracle数据库 2011-04-18 13:50:35| 分类:工作日志| 标签:|字号大中小订阅 PHP操作Oracle数据库(OCI数据抽象层) OCI(Oracle 8 Call-Interface)是PHP中内置的数据库抽象层函数。 下面针对连接Oracle数据库操作数据库的常见任务举例说明: =======================基本查询:无条件查询=================== 1、数据库连接:函数:oci_connect() 函数:resource oci_connect ( string username, string password [, string db [, string charset [, int session_mode]]] ) 说明:函数的返回值为资源 username、password:是Oracle的用户名密码,即方案名及密码 db:是可选参数,如果使用本地的Oracle实例或者使用tnsnames.ora配置文件中注册的本地服务名,直接提供其名称即可。 如果此参数留空,则使用本地的ORACLE_SID或者搜索tnsnames.ora文件的注册的默认本地服务名。 charset:参数是在Oracle9.2以上的版本使用的参数,默认可以留空,使用NLS_LANG 环境变量替代。 session_mode:用于设定使用特权身份登录(默认禁用),默认有3个选项:OCI_DEFAULT,OCI_SYSOPER 和OCI_SYSDBA 范例:连接本机注册的本地服务名为hy的Oracle实例,用户名/密码为scott/tiger 2、编译SQL语句:函数:oci_parse() 函数:resource oci_parse ( resource connection, string query ) 说明:函数返回值为资源,编译以字符串形式提供的SQL语句 connection:为在第一步中创建的链接资源标识符 query:是一个查询字符串,用双引号引起来。 在connection 上配置query 并返回语句标识符以用于oci_bind_by_name(),oci_execute() 以及其它函数 3、执行SQL语句:函数:oci_execute();

php简历中项目经验怎么写好

php简历中项目经验怎么写好 项目一:仿Discuz论坛 项目描述:用面向过程的编程思想去开发一个与Discuz相仿的论坛网站。实现登录,注册,模块管理,发帖回帖,个人信息,网 站管理,网站安装等 项目运用技术:PHPCSSHTMLMysql 项目总结:通过该项目,使我熟练掌握了面向过程化的代码书写格式以及独立编程能力,熟练使用HTML+CSS进行布局页面,并能熟练应用SQL语句进行数据库的操作(增删改查)。 项目二:仿美团团购-美团官网 项目描述:用面向对象的编程思想去开发一个与美团官网相仿的团购网站。基于ThinkPHP框架开发的,实现了美团的用户商品商家在美团上的基本功能 个人职责:组长:做项目前的规划,需求说明以及数据库设计等; 项目后台:订单管理、友情链接管理; 项目总结:发挥团队合作精神,规划项目,运用所学知识熟练掌握应用TP框架,MVC开发模式以及HTML+CSS、JavaScript、jQuery 等Web前端开发技术。 1、熟悉HTML语言。熟悉CSS及JAVASCRIPT,能使用PHOTOSHOP 处理图片,能使用DIV+CSS切割页面并制作符合WED标准的网页, 能使用DREAMWEAVER制作精美的静态网站,能使用FIRFOX调试,解决常见的错误。 2、熟练掌握PHP+MYSQL网站开发和网页制作,熟悉PHP工具ZENDSTUDIO以及ZENDPLATGORM,数据库的导入导出及维护技术,熟悉AJAX技术应用,学会简单的FLASH动画制作,掌握COMSITE开发文档。快速高效处理各种意外情况。

3、面向对象,模板技术,缓存技术,XML,DOM。 4、对C/C++语言编程,应用相关工具TURBOC2.0、VISUALC++。 5、OA进行应用程序和数据库系统的开发有一定的了解。 6、熟悉SQL语言,熟悉SQLSERVER2000数据库,SQLSERVER2000构建C/S结构数据库系统,有数据库系统设计方面的应用。 1.熟悉HTML语言。熟悉CSS及JAVASCRIPT,能使用Photoshop 处理图片,能使用DIV+CSS+jQuery制作符合WED标准的网页.熟悉JS+AJAX技术应用。 2熟练掌握PHP+MYSQL,php+access网站开发和网页制作,数据库的导入导出及维护技术,了解framework框架及uchome,discuz 开源产品。 3.smarty模板技术,懂得smarty的模板缓存和数据缓存,自动生成静态化页面。 4.数据库的优化。 5.案例: *塑胶玩具、印刷、服装等行业ERP系统开发(VB+ASP+MSSql,C#+MSSql,PHP+Mysql) *零售业管理软件的系统架构、流程分析 (C#Winform+MSSql+Access、采用该架构可以轻松扩展支持其他类型数据库,如Oracle) *OA、人事管理系统(PHP+Mysql) *企业、门户、商城、论坛等网站的开发(PHP+Mysql) 1.熟悉HTML语言。熟悉CSS及JAVASCRIPT,能使用Photoshop 处理图片,能使用DIV+CSS+jQuery制作符合WED标准的网页.熟悉JS+AJAX技术应用。

实验5-1 利用PHP实现mysql数据库操作

实验5-1 利用PHP实现mysql数据库操作 【实验目的】 1掌握SQL语言和数据库的操纵方法。 2了解PHP语法与动态网页的制作。 【实验条件】 一个有效的Apache、PHP、Mysql服务的运行环境(需要安装appserv 软件)。 【实验内容与步骤】 注意:安装之前,检查自己的机器上是否已安装iis软件,若已安装则停止运行iis web服务。 1.安装appserv软件:双击appserv软件,按向导提示进行安装(过程略)。 2.Mysql数据库的操作:建立book数据库和catalog数据表(1)在windows中打开命令提示符窗口,输入“cd c:\appserv\mysql\bin”命令进入到Mysql数据库服务器安装目录下的bin子目录,执行“mysql –uroot”命令,连接到Mysql数据库管理系统,如图5-1。 (2)建立一个book数据库(类似于一个excel文件)。 在Mysql数据库管理系统下,使用命令“create database book ;”建立一个book数据库。“use book;”(注意:若数据库book已经建立,可先用“drop database if exists book;”将它删除,然后再建立)

使用命令“use book ;”,打开book数据库 (3)在数据库book中建立一个catalog表(类似于一个excel工作表, 当中的数据具有各自的数据名和数据类型) 使用命令:“create table catalog (bookno int(10) , bookname text , price text , author text ) type=MyISAM;”来建立此’’表(4)在数据表catalog中添加几条数据记录: insert into catalog set bookno=1,bookname='电子商务',price='25',author='张泽'; insert into catalog set bookno=2,bookname='会计学原理',price='28',author='李泽'; insert into catalog set bookno=3,bookname='商务英语',price='21',author='慧泽'; (5)查询数据表catalog中的所有内容 select * from catalog; (6)最后,使用“quit”命令退出mysql数据库管理系统。 3.利用php脚本,编写动态网页,进行数据库操作 (1)利用记事本,建立一个如下的网页index.htm,并存放到c:\appserv\www\目录下(此目录为web服务器的站点根目录)

何在PHP中使用Oracle数据库

在以上版本中,PHP内置了几乎目前所有的数据库处理函数,包括Oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库。 PHP提供了2大类API(应用程序接口)来操作Oracle数据库。一个是标准的Oracle处理函数(ORA) 另一个是Oracle 8调用接口函数(OCI8). 后者只能在Oracle 7或8版本上使用。由于OCI8 提供了很多优化选项,因此只要有可能就应该采用 OCI8 接口。这里我们分别用这二种函数集进行了演示。 首先本文的前提假设你已经装好了 Oracle数据库环境和 PHP 开发环境. 如果不懂也没多大关系,网上有很多相关的好文章可以参考。 第一步:创建一个实验用的数据库 这个问题你可以请你的数据库管理员或参考Oracle用户手册处理,这里不再多讲 用 ORA 建立数据表 即使你已经创建好了数据表,也请看看本段文字。它可以告诉你如何用PHP+SQL的技术操作Oracle 在本例中我们创建了一个用于存放个人email的数据表 相关PHP代码: PutEnv("ORACLE_SID=ORASID"); $connection = Ora_LOGOn ("username", "password"); if ($connection == false){ echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." "; exit; } $cursor = Ora_Open ($connection); if ($cursor == false){ echo Ora_ErrorCode($connection).": ".Ora_Error($connection)." "; exit; } $query = "create table email_info " . "(fullname varchar(255), email_address varchar(255))";

php和多种数据库(mssql,access,oracle)

PHP访问ACCESS数据库的方法总结收藏 在PHP中连接ACCESS有三种方式: 1、创建系统数据源,用php提供的odbc函数即可 2、同样使用php的odbc函数,但不创建数据源。 $connstr="DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath("netBook.mdb") ; $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC ); 3、使用微软的ADODB数据库驱动 $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("netBook.mdb"); $conn->Open($connstr); $rs = new com("ADODB.RecordSet"); $rs->Open("select * from class",$conn,1,1); while(! $rs->eof) { // $f = $rs->Fields(0); // echo $f->value; echo $rs->Fields["content"]->value."
"; $rs->MoveNext(); } ?> 举例如下: "; echo $record = odbc_result($query,1); echo "
"; $num = $num + 1; if ($num > 20){ break; } // 只取出前20条记录

Oracle SQL共享的机制(php)

Oracle SQL共享的机制--在php中使用绑定变量的方法 在网站应用的研发中,一个较流行的方法便是使用php 编程,php编程方法简单明了,直接在html 中嵌入php 代码,对于研发基于数据库的动态应用十分方便。不过,许多研发员在用php研发基于Oracle 数据库的应用时,仍沿习研发基于Mysql 的应用的方法,未使用绑定变量,使得Oracle SGA 区中SQL语句的重用性极低,浪费了内存,降低了系统性能。 因而,在此,先简单介绍一下Oracle SQL共享的机制,再介绍怎么在php 中使用绑定变量,从而实现Oracle 数据库中sql语句的共享。 一、Oracle SQL语句共享区的机制 1、SGA 区结构: Oracle 数据库启动时,在内存中分配了一大片空间,为系统全局区(System Global Area),其中包含Sql 共享池及数据缓存器(Data Buffer Cache)。SGA 区的共享池部分主要由三个区域组成: 库缓存, 字典缓存, 控制结构。库缓存包括共享SQL 区,私有SQL区,PL/SQL 过程及包, 及控制结构,如锁及库缓存handles。用户执行过的Sql 语句存放于Sql 共享池中,以便能重用,提高其效率。 2、SQL语句在内存中的分布: Oracle 将其执行的每一条SQL 语句存于共享SQL 区及私有SQL 区中。当Oracle 发现两个用户执行相同的SQL语句时,则为这些用户重用SQL共享区。不过,每一用户必须在私有SQL区中拥有该语句的一份独立拷贝。共享SQL 区包含单一SQL语句或相同的SQL语句的解析树及执行计划。通过为多个相同的DML语句使用一个共享SQL区,Oracle 节省了内存的使用, 特别是当许多用户使用同一应用时。共享SQL区永远驻留在共享池中。https://www.doczj.com/doc/a510721519.html, 3、SQL语句解析时进行的内存分配操作: 当一个SQL语句被提交至Oracle 去执行时,Oracle 自动地执行以下内存分配步骤: Oracle 检查共享池,看是否在共享SQL区中已存在相同的语句。若有,则该共享SQL区被用于执行该语句的新实例的后续操作。相应地,若在共享池中无该语句,则Oracle在共享池中分配一新的共享SQL 区,其尺寸决定于该语句的复杂性。若一个SQL语句需求新的共享SQL区而整个共享池已被分配完毕,则Oracle 可通过一个最近最少修改机理从共享池中释放部分项目,直至可为新语句的共享SQL区提供足够的空间。若Oracle释放了一个共享SQL 区,则和该区相关联的SQL语句在下次重执行时,须重新解析并重新分配至另一共享SQL区。在两种情况下,用户专用SQL区和包含该语句的共享SQL区相关联。 因而,若能使语句得到共享,则其将减少内存的占用,同时,减少了cpu 的占用,加快了语句执行的速度。 即使一个光标仍处于打开状态,若其非常久未被使用了,则其共享区也可能被从共享池中移出。若该光标以后又被用于执行其语句,则Oracle重解析该语句并且在共享池中分配一新的共享SQL区。 4、私有SQL区

oracle基础文档

1.1 ORACLE数据库简介 Oracle简称甲骨文,是一家名声不像微软、IBM那样显赫,但在IT软件业,则是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。该公司成立于1979年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这个市场的大部分份额。现在,他们的RDBMS被广泛应用于各种操作环境:Windows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。由于Oracle公司的RDBMS都以Oracle为名,所以,在某种程度上Oracle己经成为了RDBMS的代名词。 Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。 Oracle数据库是基于“客户端/服务器”(Client/Server)模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。服务器系统负责管理数据信息和各种操作数据的活动。 Oracle数据库有如下几个强大的特性: 支持多用户、大事务量的事务处理λ 数据安全性和完整性的有效控制λ λ支持分布式数据处理 可移植性强λ Oracle体系庞大,对于初学者来说,大体上要明白定位思想: Oracle大体上分两大块,一块是应用开发,一块是系统管理。 开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力。管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会丢失整个数据库,相对前者来说,后者更看重经验。 因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。 Oracle的几个专业性网站: https://www.doczj.com/doc/a510721519.html,/default.asp(Oracle技术网) https://www.doczj.com/doc/a510721519.html,/index.php(ORACLE技术中国用户讨论组) 1.2 ORACLE数据库的体系结构 数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制 1.2.1 ORACLE服务器 Oracle服务器由Oracle数据库和Oracle实例组成。Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元。在一个装有Oracle数据库的服务器上,必须运行一系列进程来管理该数据库。这些进程使用大块的内存,这些内存块分别具有与特定任务相关的用途。 后台进程和内存结构的集合称为Oracle实例。如果要访问数据库中的数据,就需启动该实例。每一个运行的Oracle数据库都与一个Oracle实例相联系。

ORACLE数据库基础测试题oracle数据库复习题

ORACLE数据库基础测试题 提示:本题为ORACLE数据库基础测试题,适合初学者对基础知识进行测试,以便查漏补缺。 1. DDL指的是:()。 A.数据定义语言 B.数据操作语言 C.数据查询语言 D.数据控制语言 正确答案:A解析: 2. 下列创建表语句正确的是:()。 A.create table emp( id number(4) , ) ; B.create table emp( id number(4) ) ; C.alter table emp( id number(4) ) ; D.alter table emp( id number(4),) ; 正确答案:B解析: 3. 下列Oracle函数中能够返回两个字符串连接后的结果的是:()。 A.initcap B.instr

C.trim D.concat 正确答案:D解析: 4. 下列SQL语句的查询结果是:()。selectround(45.925,0),trunc(45.925) from dual; A.45 45 B.46 45 C.45 46 D.46 46 正确答案:B解析: 5. 关于函数nvl(d1,d2)的用法说法正确的是:()。 A.表示如果d1为null则d2必须为null B.表示如果d1为null则忽略d2 C.表示如果d1不为null则用d2替代 D.表示如果d1为null则用d2替代 正确答案:D解析: 6. 显示emp表的所有行,所有列,下列SQL语句正确的是:()。 A.select * from emp; B.select all.* from emp;

相关主题
文本预览
相关文档 最新文档