2022年php基础教程 .pdf

上传人:Che****ry 文档编号:27189152 上传时间:2022-07-23 格式:PDF 页数:33 大小:203.24KB
返回 下载 相关 举报
2022年php基础教程 .pdf_第1页
第1页 / 共33页
2022年php基础教程 .pdf_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《2022年php基础教程 .pdf》由会员分享,可在线阅读,更多相关《2022年php基础教程 .pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、标题: PHP 基础教程出处:风流的CG 网络日志时间: Mon, 28 Aug 2006 07:24:34 +0000 作者: yufeng 地址: http:/read.php?38 内容:提供给新手学习的PHP 新手教程,是一个比较有价值的PHP 新手教程!一、 PHP 简介PHP 是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB 站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web 站点的行列。我假定你有一些HTML (或者 HTML 编辑器)的基本知识和一些编程思想。1.简介PHP 是能让你生成动态网页的工具之一

2、。PHP 网页文件被当作一般HTML 网页文件来处理并且在编辑时你可以用编辑HTML 的常规方法编写PHP。PHP 代表:超文本预处理器(PHP: Hypertext Preprocessor ) 。PHP 是完全免费的,不用花钱,你可以从 PHP 官方站点 (http:/) 自由下载。 PHP 遵守 GNU 公共许可( GPL),在这一许可下诞生了许多流行的软件诸如Linux 和 Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP 在大多数Unix 平台, GUN/Linux和微软Windows平台上均可以运行。怎样在 Windows 环境的 PC 机器或 Uni

3、x 机器上安装PHP 的资料可以在PHP 官方站点上找到。安装过程很简单。如果你的机器解决了2000 问题,那么PHP 也一样没有千年虫问题!1.1 历史三年前, Rasmus Lerdorf为了创建他的在线简历而创造了个人主页工具(Personal Home Page Tools) 。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。 在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。PHP 虽然很容易学习,但是速度上比mod_perl(植入 web 服务器的perl 模块)慢。现在有了可以与 mod_p

4、erl 速度想媲美的被称作Zend 的新引擎,而 PHP4 就可以充分利用这个引擎。PHP4 还处在 BETA 测试阶段。 Andy Gutmans 和 Zeev Suraki 是 Zend 的主要作者。可以去名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 33 页 - - - - - - - - - Zend 站点 (http:/) 了解更多。PHP 的应用在个人性质的web 工程中增长显著。根据Netcraft 在 1999 年 10 月的报告,有931122 个域和

5、 321128 个 IP 地址利用 PHP 技术。1.2 PHP 的先进之处应用 PHP 有许多好处。当然已知的不利之处在于PHP 由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4 之前)。但是 PHP 的邮件列表很是有用而且除非你正在运行像Yahoo!或者 A 这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP 有那些优点:- 学习过程我个人更喜欢PHP 的非常简单的学习过程。与 Java 和 Perl 不同 ,你不必把头埋进100 多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的

6、语法和语言特色,你就可以开始你的PHP 编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。PHP 的语法与C, Perl, ASP 或者 JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP 了解较多,那么你对于其他几种语言的学习都很简单了。你只需要30 分钟就可以将PHP 的核心语言特点全部掌握,你可能已经非常了解HTML ,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB 站点。由于PHP 代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP 使得你的站点更加具有动态特性。- 数据库连接PHP

7、 可以编译成具有与许多数据库相连接的函数。PHP 与 MySQL 是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB 就是最常用的可以提供一般事务需要的一系列基库。- 可扩展性就像前面说的那样,PHP 已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP 程序员来说并不困难。- 面向对象编程PHP 提供了类和对象。基于 web 的编程工作非常需要面向对象编程能力。PHP 支持构造器、名师资料总结 - - -精品资料欢迎下载 - - - - - -

8、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 33 页 - - - - - - - - - 提取类等。- 可伸缩性传统上网页的交互作用是通过CGI 来实现的。 CGI 程序的伸缩性不很理想,因为它为每一个正在运行的CGI 程序开一个独立进程。解决方法就是将经常用来编写CGI 程序的语言的解释器编译进你的web 服务器 (比如 mod_perl,JSP)。PHP 就可以以这种方式安装,虽然很少有人愿意这样以CGI 方式安装它。内嵌的PHP 可以具有更高的可伸缩性。- 更多特点PHP 的开发者们为了更适合web 编程,开发了许多外围的流行

9、基库,这些库包含了更易用的层。你可以利用PHP 连接包括Oracle,MS-Access,Mysql 在内的大部分数据库。你可以在苍蝇上画图, 编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP 安装版本需要哪些功能。引用 Nissan 的 Xterra 的话来说就是PHP 可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手: ASP,mod_perl,JSP 我当然不清楚ASP/JSP 能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN 和 Micr

10、osoft 的百万美金所影响) ,请顺便通知我。据我所知, JSP基于 Java,因此 Java 程序员可以轻松开始编码。ASP 只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript 。mod_perl 与 Perl 一样强大,只是更快一些。二、 PHP 入门PHP 站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对 PHP 熟悉一点。 我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。2.1 首要条件你首先必须要有一个正在工作着的支持PHP的 web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php

11、3。2.2 PHP 的安装生成一个名为test.php3 的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP 安装使用的选项了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 33 页 - - - - - - - - - 2.3 语法就像前面提到的一样,你可以混合编写你的PHP 代码和 HTML代码。因此你必须有办法将两者区别开来。 以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法!从 HTML 中分离以下

12、是可以使用的方法: . . . 语句与 Perl 和 C 一样,在PHP 中用( ;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。注释PHP 支持 C,C+和 Unix 风格的注释方式:/* C,C+ 风格多行注释*/ / C+ 风格单行注释# Unix 风格单行注释Hello,World! 通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: First PHP page 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共

13、 33 页 - - - - - - - - - 2.4 数据类型PHP 支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP 运行过程决定(真是好的解脱!) 。但是类型也可以被函数cast或者 settype()明确的设定。数值数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值:$a = 1234; # 十进制数$a = -123; # 负数$a = 0123; # 八进制数(等于十进制数的83) $a = 0 x12; # 十六进制数 (等于十进制数的18) $a = 1.234; # 浮点数 双精度数 $a = 1.2e3; # 双精度数的指数形式字符串

14、字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\ )可以被用来分割某些特殊字符。举例如下:$first = Hello; $second = World; $full1 = $first $second; # 产生Hello World $full2 = $first $second;# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。数组与哈希表数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用

15、list() 或者array()来定义它们, 也可以直接为数组赋值。数组的索引从0 开始。虽然我在这里没有说明,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 33 页 - - - - - - - - - 但是你一样可以轻易的使用多维数组。/ 一个包含两个元素的数组$a[0] = first; $a[1] = second; $a[] = third; / 添加数组元素的简单方法/ 现在 $a[2] 被赋值为

16、 third echo count($a); / 打印出 3,因为该是数组有3 个元素/ 用一个语句定义一个数组并赋值$myphonebook = array ( sbabu = 5348, keith = 4829, carole = 4533 ); / 噢,忘了教长吧,让我们添加一个元素$myphonebook[dean] = 5397; / 你定义的carale 元素错了,让我们更正它$myphonebook[carole] = 4522 / 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看echo $myphonebook[0]

17、/ sbabu echo $myphonebook[1] / 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和 each()。对象使用 new 语句产生一个对象:class foo function do_foo () echo Doing foo.; $bar = new foo; $bar-do_foo(); 改变变量类型在 PHP 手册中提到: PHP 不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var 赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了

18、整数。 $foo = 0; / $foo是字符串 (ASCII 48) $foo+; / $foo 是字符串 1 (ASCII 49) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 33 页 - - - - - - - - - $foo += 1; / $foo 现在是整数 (2) $foo = $foo + 1.3; / $foo是一个双精度数(3.3) $foo = 5 + 10 Little Piggies; / $foo是一个整数 (15) $foo = 5 +

19、 10 Small Pigs; / $foo是一个整数 (15) 如果想要强行转换变量类型,可以使用与C 语言相同的函数settype()。2.5 变量与常量可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用 global 语句。而你要将该变量的作用范围限制在该函数之内,使用static 语句。$g_var = 1 ; / 全局范围function test() global $g_var; / 这样就可以声明全局变量了 更先进一些的是变量的变量表示。请参考PHP 手册。这在有时会显得很有用。PHP 内置 了许多已定义的变量。你

20、也可以用define 函数定义你自己的常量,比如define(CONSTANT,value)。2.6 运算符PHP 具有 C,C+和 Java 中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用 = 。算术和字符以下只有一种运算符是有关字符的:$a + $b :加$a - $b :减$a * $b :乘$a / $b :除$a % $b :取模(余数)$a . $b :字符串连接逻辑和比较逻辑运算符有:$a || $b :或$a or $b :或$a & $b :与名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

21、 - - - - 名师精心整理 - - - - - - - 第 7 页,共 33 页 - - - - - - - - - $a and $b :与$a xor $b :异或(当 $a或$b 为 true 时为 true,两者一样时为false)! $a :非比较运算符有:$a = $b :相等$a != $b :不等$a $b :小于$a $b :大于$a = $b :大于等于与 C 一样 PHP 也有三重运算符(?:) 。位操作符在PHP 同样存在。优先权就和 C 以及 Java一样!2.7 控制流程结构PHP 有着与 C 一样的流程控制。我将在下面大概介绍。if, else, elseif

22、, if(): endif if ( 表达式一 ) . . . elseif (表达式二 ) . . . else . . . / 或者像 Python 一样if ( 表达式一 ) : . . . . . . elseif (表达式二 ) : . . . else : . . . endif ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 33 页 - - - - - - - - - Loops. while, do.while, for while ( 表达式 )

23、. . . do . . . while ( 表达式 ); for (表达式一 ; 表达式二 ; 表达式三 ) . . . /或者像 Python 一样while (expr) : . . . endwhile ; switch switch 是对多重 if-elseif-else 结构的最好的替换:switch ($i) case 0: print i equals 0; case 1: print i equals 1; case 2: print i equals 2; break, continue break 中断当前的循环控制结构。continue 被用来跳出剩下的当前循环并继续执

24、行下一次循环。require, include 就像 C 中的 #include 预处理一样。你在require 中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以使用include() 。这样就使得你可以将复杂的PHP 文件分割成多个文件并且在不同需要时分别引用它们。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 33 页 - - - - - - - - - 2.8 函数你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型:functi

25、on foo ( 变量名一 , 变量名二 , . . . , 变量名 n) echo Example function.\n; return $retval; 所有 PHP 代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。2.9 类利用类模型建立类。可以参考PHP 手册中对类的详细解释。class Employee var $empno; / 员工人数var $empnm; / 员工姓名function add_employee($in_num, $in_name) $this-empno = $in_num; $this-empnm = $in_na

26、me; function show() echo $this-empno, $this-empnm; return; function changenm($in_name) $this-empnm = $in_name; $sbabu = new Employee; $sbabu-add_employee(10,sbabu); $sbabu-changenm(babu); $sbabu-show(); 三、从实例入手名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 33

27、页 - - - - - - - - - PHP 的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP 知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧, 我们现在开始专注于一个典型个人网站的建设。3.1 计划一个站点一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息, 甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。标题页面 -front.html 这里我们有一个非常简单的html 文件: 我的个人主页 -欢迎 我的个人主页 欢

28、迎 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己, 1999 联系信息页面 -count.html 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 33 页 - - - - - - - - - 同样我们又有了一个简单页面: 我的个人主页 -联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO 联系我 Copyright ? 我自己, 1999 3.2 HTML到 PHP 从上面你可以看出,

29、每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100 多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP 的头部和底部文件,之后我们只要在每个HTML 页面中引用它们就行了。我们将把这些include 文件放在一个叫include 的子目录下。 下面我们就把这些站点的通用内容写进文件中。全站通用变量设定:common.inc ? / 全站通用变量$MyEmail = phptalktnc.org; $MyEmailLink = $MyEmail; $MyNa

30、me = PHP Talk; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 33 页 - - - - - - - - - $MySiteName = $MyName.s Home Page; ? 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

31、 - - - - - - - 第 13 页,共 33 页 - - - - - - - - - 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 新的 cont.php3: 你可以通过1-800-PHP-INFO 联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail 地址甚至你的名字,只要修改common.inc 文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。3.3 计数器让我们在首页上加上一个计数器。这个例子已经被

32、讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc 包含以下代码: 然后我们更改front.php3 文件以显示这个计数器:? include(include/counter.inc); / 我把计数值放在文件counter.txt 中,读出并输出printf (%06d \n, get_hitcount(counter.txt); include(include/footer.inc); ? 看看我们的新front.php3 3.4 反馈表单让我们再添加一个反馈表单以便你的浏览者填写并e-mail 给你。举例来说我们用一种很简单的方法实现它,我们只需

33、要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、 mail 给你。PHP 中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。 在 process_form.php3 中,变量 $mytext 就被赋予了输入的值-非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15

34、 页,共 33 页 - - - - - - - - - 根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail 地址和留言。当浏览者发送表单后,处理该表单的PHP 页面( sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail 给你。表单: form.php3 Your feedback on my home page. 处理表单: sendfdbk.php3 ? include(include/common.inc); $title = Feedback; include(include/header.inc); if ( $name = ) / 现在

35、我很讨厌匿名的留言!echo Duh ? How come you are anonymous?; elseif ($name = Your name) / 这个浏览者真是不想透露姓名啊!echo Hello ? Your name is supposed to be replaced with your actual name!; else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 33 页 - - - - - - - - - / 输出一段礼貌的感谢语echo

36、Hello, $name. Thank you for your feedback. It is greatly appreciated. Thanking you $MyName $MyEmailLink ; / 最后 mail 出去mail($MyEmail, Feedback., Name : $name E-mail : $email Comment : $comment ); include(include/footer.inc); ? 3.5 简单的站内搜索引擎PHP 可以调用外部程序。在Unix 环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用

37、一个页面既输出一个表单供用户输入搜索字串又输出查询结果。 FORM ACTION= METHOD=POST INPUT TYPE=text NAME=searchstr value= SIZE=20 MAXLENGTH=30 ? if ( ! empty($searchstr) ) / empty() 用来检查查询字串是否为空/ 如果不为空,调用grep 查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 33 页 - - - - - - - - - echo \

38、;n; / 调用 grep 对所有文件进行大小写非敏感模式的查询$cmdstr = grep -i $searchstr *; $fp = popen( $cmdstr, r ); / 执行命令并输出管道$myresult = array(); / 存储查询结果while( $buffer = fgetss ($fp, 4096) / grep 返回这样格式:文件名:匹配字串出现行数/ 因此我们利用函数split() 分离处理数据list($fname, $fline) = split(:,$buffer, 2); / 我们只输出第一次匹配的结果if ( !defined($myresult&

39、#91;$fname]) $myresult[$fname] = $fline; / 现在我们将结果存储在数组中,下面就可以处理并输出了if ( count($myresult) ) echo \n; while(list($fname,$fline) = each($myresult) echo $fname : $fline \n; echo \n; else / 如果没有查询结果echo Sorry. Search on $searchstr returned no results.\n; pclose($fp); ? 注释:PHP

40、_SELF 是 PHP 内建的变量。包含当前文件名。fgets()按行读取文件,最多4096(指定)字符长度。fgetss()与 fgets()相似,只是解析输出的HTML 标记。split() 有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略: 。each()是一个数组操作函数,用来更方便的遍历整个数组。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 33 页 - - - - - - - - - popen()、pclose()与 fopen()、fclo

41、se()的功能很相似,只是增加了管道处理。请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP 而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索四、与数据库链接通过 PHP 你可以轻松的连接到数据库,请求数据并将其显示在你的web 站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP 与MySQL的教程。 MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL 的使用方法了。Oracle 被大量在企业应用中采用,因此我们就利用Oracle 来介绍 PHP 与数据

42、库的连接。我们当然不会提及Oracle 数据库的设计原理,原因是这已经超出了我们的讨论范围。PHP 提供了两套函数与Oracle 连接,分别是ORA_ 和 OCI 函数。其中ORA_ 函数略显陈旧。OCI 函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP 安装选项应该可以支持两者的使用。想获得更多有关在Microsoft Windows 平台上安装支持PHP3 的 Apache 服务器的知识以及更多有关 Oracle 数据库的知识,请查阅以下URL : 。4.1 连接? if ($conn=Ora_Logon(userTNSNAME,password) echo SUCC

43、ESS ! 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 中。4.2 查询假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子

44、:? /* * 连接数据库并执行查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 33 页 - - - - - - - - - */ function printoraerr($in_cur) / 检查 Oracle 是否出错/ 如果存在错误则显示/ 当指针被激活时每次请求Oracle 后调用该函数if(ora_errorcode($in_cur) echo Oracle code - .ora_error($in_cur).\n; return; /* 主程

45、序*/ if (!($conn=ora_logon(userTNSNAME,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

46、 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($

47、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;

48、 ? (译者注:以上代码段缺少注释,请读者参考PHP Manual 的 Oracle 数据库函数部分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 33 页 - - - - - - - - - 4.3 显示结果以下代码演示了怎样查询数据库并将结果输出:? function printoraerr($in_cur, $conn) / 检查 Oracle 是否出错/ 如果存在错误则显示/ 当指针被激活时每次请求Oracle 后调用该函数/ If it encountere

49、d an error, we exit immediately if(ora_errorcode($in_cur) echo Oracle code - .ora_error($in_cur).n; ora_logoff($conn); exit; return; function exequery($w_qry,$conn) $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printo

50、raerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); / 显示头部echo \n; for ($i=0;$i$w_numcols;$i+) $align=(ora_columntype($cursor,$i)=NUMBER)?RIGHT:LEFT; echo \t.ora_columnname($cursor,$i).\n; echo \n; while(ora_fetch($cursor) echo \n; for ($i=0;$i$w_numcols;$i+) $alig

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁