互联网软件开发与应.ppt

上传人:牧羊曲112 文档编号:5913846 上传时间:2023-09-03 格式:PPT 页数:79 大小:428.50KB
返回 下载 相关 举报
互联网软件开发与应.ppt_第1页
第1页 / 共79页
互联网软件开发与应.ppt_第2页
第2页 / 共79页
互联网软件开发与应.ppt_第3页
第3页 / 共79页
互联网软件开发与应.ppt_第4页
第4页 / 共79页
互联网软件开发与应.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《互联网软件开发与应.ppt》由会员分享,可在线阅读,更多相关《互联网软件开发与应.ppt(79页珍藏版)》请在三一办公上搜索。

1、互联网软件开发与应用,任课教师:陆铭联系电话:66134267QQ:22839978PoPo:教学网站:,1,第七章 PHP技术,PHP简介PHP语言的特点PHP与其他CGI的比较PHP工作环境安装和配置PHP环境PHP语言基础PHP数据类型、运算符和表达式PHP基本语句和操作数据库的命令PHP访问MySQL数据库MySQL数据库的安装MySQL的基本使用使用PHP操作MySQL数据库,7.1 PHP简介,3,PHP语言的特点,服务器端嵌入式脚本描述语言,往往与MySQL数据库同时使用支持多种系统平台:win9x/NT/2000/Unix/Linux/Solaris具有自由软件的特性:可自行加

2、入所需代码版本更新速度快容易与现有系统的网页整合:提供交互功能,修改成本低具有丰富的功能:结构化、对象式设计、数据库处理、网络接口、安全编码机制系统移植速度快:少量改动,即可迁移,4,基于互联网技术的PHP,PHP是一种服务器端嵌入式脚本描述语言,最大特点是数据库层操作功能强大网络发展早期都是单纯的HTML,近来需要同数据库链接的网页越来越多PHP之前用Perl、C编写CGI程序Perl基本上成为了书写CGI程序的一个标准PHP语言占有很大优势在保持了与Perl相当能力的前提下加强了对数据库的操作能力丰富的数据库操作函数可以进行几乎所有的数据库操作最终要的是PHP可以在几乎所有的平台上运行,P

3、erl的最大优点是对字符串的控制能力特别强。使用Perl操作数据库需依靠Unix下Perl的DBI.pm实现。如果要在windows下使用,需使用windows下的数据操作扩展库。这使得程序的跨平台运行变得不可操作。,5,PHP与其他CGI的比较,编写CGI程序的方式有很多,PHP只是其中的一种ASP/PHP:嵌入式脚本的方式Perl/C/C+:独立的程序,需专门安置在/bin/cgi目录中,7.2 PHP工作环境,7,PHP工作环境,PHP开始只支持Unix和UnixLike体系的操作系统SCOUnix、Linux随着PHP使用的日益增多,感到在缺少集成环境的Linux下开发是件困难事,发展

4、了Winodws下的PHP版除非实在没有条件构建Unix平台才在windows下进行调试一般情况下,可以在一台计算机上搭建Linux平台作为服务器,在另一台安装有windows的计算机上通过Telnet进行管理PHP程序的常规开发方法在windows环境下编写源代码通过Telnet在Linux上进行调试和试运行如此配合使用,可以使工作效率达到最大,8,在Linux和Windows下开发PHP,PHP由Linux的发展而流行,Linux对PHP的支持最完美Linux下的PHP开发环境程序源码编辑环境Vi,Emacs(windows的记事本)PHP自身工作环境Apache,MySQL等支持PHP的

5、浏览器环境LYNX(Netscape/IE),在windows下开发PHP程序的最大好处就是可以享用集成环境Windows下的PHP开发环境程序源码编辑环境记事本/专用文本编辑器Web服务器IIS/Apache,MySQL,SQL ServerPHP浏览器IE/Netscape,9,Windows下安装和配置PHP环境(1),从PHP官方网站上下载php安装压缩包官方网站:http:/在Download目录下可以找到php公布的最新的php安装压缩包在Linux下习惯于发行软件的源程序,而在windows下则只提供编译后的文件最新版本是php包含:Apache、CGI、API、MySQL、IS

6、API、NSAPI等下载后将其解压缩(WinZip/WinRAR)到C:PHP也可以解压缩到其他地方,如果这样做,则在安装完成后须编辑解压出来的文件中的.inf 文件凡是带有 php 前缀的文件可以直接放到php目录下,其他文件只能放在windows/system32下,才能被windows调用解压缩后,执行安装程序进行安装php目录下有个php.ini-dish文件,需要将其改名为php.ini,并将其移动到windows目录下,并将其中 extension=php_MySQL.dll 前的注释标记去掉,10,Windows下安装和配置PHP环境(2),使用IIS服务器安装PHP修改完php

7、,ini文件后,鼠标右击php_iis_reg.inf文件,在弹出的菜单中选择“安装”将PHP安装到系统中安装完毕后必须重新启动计算机,安装过程中修改的参数才能有效重新启动后即可使用安装和使用过程中有不清楚的地方,可以随时打开求助文件了解操作要点在Windows下构建Apache平台运行PHP除了可以在IIS中安装PHP外,还可以在windows环境下构建Apache平台首先到Apache网站上下载Apache在Windows下的应用程序下载后解压缩安装,安装完成后需要对Apache做一些特别的设置在http.conf 或 srm.conf中增加一行信息:Apache application/

8、x httpd-php php/php.exeApache applicaion/x httpd php.php,11,Linux下安装和配置PHP环境,在Linux下,程序以源码形式发布,需从源码开始编译并安装,相比Windows下稍微复杂些首先从php官方网站上下载php源码,如:这是一个压缩文件,.gz表示是经过gzip压缩的文件,.tar表示这是一个包文件。Linux文件压缩时有个习惯:先将文件打包,然后再压缩将压缩文件用gunzip和tar进行解压缩和解包gunziptar xvf解压后的Linux源码中往往有一个脚本程序,可以直接使用该脚本程序configure进行编译,但这样编译

9、出来的文件安全性差一般使用配置项进行指定以获得最适合的程序运行./configure help|more可以查看相关的选项编译时可选择编译成外部 CGI程序 还是 Apache内嵌模块建议最好将对MySQL的支持部分编译进去,12,几个常用的Unix命令,gunzip 对后缀为.gz的压缩文件进行解压缩操作tar 对后缀为.tar的打包文件进行解包操作cd 设置当前文件目录路径make 对源码文件进行编译操作make install 经编译后的结果安装到当前目录下make test 测试安装结果命令make bench 评估安装结果和性能cp 文件复制操作命令./表示当前目录./表示当前目录的

10、父目录,13,配置php环境,PHP环境的配置主要是通过php.ini文件进行的PHP环境配置的信息对整个PHP环境都有效,如果要改变相关的环境因素,只要修改环境配置文件php.ini即可环境配置文件的读取以内置服务器模块方式运行的PHP,在启动服务器时读取以CGI方式运行的PHP,每次调用时都发生调用对于Apache+PHP的配置信息Apache的配置文件为:httpd.conf 或 srm.confPHP的配置文件为:php.ini依据环境参数位置的不同,修改httpd.con(srm.conf)或 php.ini,7.3 PHP语言基础,15,7.3.1 PHP语言中的简单约定,PHP代

11、码在html中嵌入形式 这两种是php语言的标准形式使用php代码在客户端的浏览器进行页面输出时,页面的源代码中只有一些标准的HTML代码php引擎在服务器端过滤了文件的内容,对其中的代码进行了处理,转换成了标准的HTML代码,并发送到客户端的浏览器,使用这两种形式时需避免与XML或ASP语言发生冲突,16,PHP语句的脱离形式与程序注释,PHP语句的结束(脱离)形式与C语言相同,PHP程序语句是以“;”为结束标志的在嵌入符号“?”之前的一句php语句可以不写“;”就结束程序注释可以使用C、C+、Unix Shell语言的注释方式/或#-单行式,如:/One line.、#One line./

12、*/-多行式,多行式的注释不能相互包含示例/*/*/*/*/*/*/,17,7.3.2 变量的声明和文件的引用,变量声明PHP是一种弱类型声明语言,与VBScript、Javascript相似,变量声明时不需要特别说明变量的类型,而且往往在变量声明的同时进行变量初值的赋值PHP变量声明格式:$变量名=表达式或值;$title=“Hello,world!”;头文件的引用所谓头文件是指这样的一类文件,其中包含了大量的常量、通用函数和通用过程,它的内容可以为各个程序文件所引用引用头文件可以加快程序开发的速度,减少程序开发难度在php程序中可以像C语言一样,对头文件进行引用引用格式Require(“文

13、件名”);静态引用.Include(“文件名”);动态引用.,不论是否真的需要使用,引用的文件都将作为主程序的一部分来运行。出错时,给出错误信息并终止程序的运行。,仅在确定需要使用其中的常量或函数时,文件才会被加入到主程序中。出错时,仅给出错误信息,程序照常运行。,18,复合语句,=为赋值语句,while为当型循环,数据库操作函数,数据库选择函数,7.3.3 数据库操作命令,先看一个简单例子 n;echo 姓名职位n;while($myrow=MySQL_fetch_row($result)printf(%s%s%s,$myrow1,$myrow2,$myrow3);echo n?,变量,数据

14、库链接号,主机名,用户名,口令,归纳:数据库操作的基本步骤 链接数据库服务器:MySQL_Connect(localhost,user,passwd);选择一个数据库:MySQL_Select_db(mydb,$db);对数据库进行具体的操作:MySQL_query(select*from employees,$db);处理记录:MySQL_fetch_row($result),假设:已经在MySQL中创建了一个名为mydb的的数据库,其中含有一个数据表employee,具有“姓名”、“职位”等字段,注意:php中对变量、标识符等区分大小写,数据库链接函数,19,7.3.4 一个完整而简单的P

15、HP程序,Sample.php php程序示例$hello;?,说明:php是服务器端的嵌入式脚本描述语言,php程序必须放置在服务器端,在服务器上供客户端的浏览器执行,即类似ASP程序,不可在客户端直接浏览。,7.3.5 PHP的数据类型、运算符和表达式,21,PHP的数据类型,PHP支持多种数据类型Integer 整型、Double 浮点型、String 字符串Array 数组、Object 对象、pdfinfo和pdfdoc PDF信息PHP不是强类型说明语言,在程序中可以不必事先进行数据类型的声明,PHP解释器会自动对数据类型进行判断在第一次赋值时,PHP根据上下文决定变量的数据类型,

16、PHP中的常量,PHP中对常量的类型要求是不严格的常量分为预定义常量和自定义常量两种预定义常量:PHP内部事先已经定义了的常量预定义常量有多种不同的开头,决定了各种不同的类别 P.149自定义常量:由用户自行依据程序的需要来定义的常量自定义常量的定义格式:define(“常量名”,表达式或值)例:define(“CONSTANT”,“Hello,World.”)示例,23,再谈PHP中的变量,变量的概念变量是通过一个标识、类型来应用内存,通过标识、类型和可选的数值来定义变量每一个变量都有一个作用的范围,定义了变量的可见性和生命周期变量的定义$变量名=初始值变量的类型详见P.149,通常情况下不

17、需要声明类型,但可使用cast或settype进行强制类型转换变量的初始化一般只要直接赋值即可,如:$int1=1998,$ln=a new line.n,$st=php数组初始化:$数组名=array(,),如:$name=(张三,李四)数组变量的引用:$数组名i,i=0,1,2,,如:$name0,$name1 i 称为数组的下标,下标的取值从0开始,变量定义$name,你好!;echo 你的账号是:$account。;echo 你现在账上的余额是:$balance。;?,24,变量的作用域,一般情况下,PHP变量仅仅只有有限的活动范围在用户自定义的函数中有“本地函数范围”的概念所谓“本地

18、函数范围”是指所有函数中的变量不经特别声明,都仅仅在函数内有效,函数外定义的变量在函数内无效一般情况下,变量均为局部的(本地),除非用以下两种方法之一指定其全局属性使用global关键字作再定义使用$GLOBALS数组,该数组可以不用声明,可以直接使用,变量作用域$a没有在函数内说明,没有任何结果输出,变量作用域 输出结果为:3.008,9558884.000,变量作用域 输出结果同样为:3.008,9558884.000,25,静态变量,静态变量仅仅在本地函数的活动范围中存在通常情况下,变量的生命周期仅在一次调用中在用户自定义函数中的变量,调用结束,变量就释放了即函数调用结束,变量消亡;下次

19、调用,重新设置变量静态变量能够使变量在函数调用结束后仍保持不变要想使变量能够保持一段时间,须使用静态变量,因为变量$a的初始值为0,所以函数调用后输出结果为0,然后变量$a增1,$a+,此时变量$a的值为1,但函数运行结束,变量全部释放,变量$a不再存在,变量$a的初始值仍为0,第一次函数调用后的输出结果为0,然后变量$a增1,$a+,此时变量$a的值为1,因为变量$a是静态变量,函数运行结束后,变量不会释放,变量$a仍然存在;第二次调用该函数时,不再做新的初始化操作,直接取出该变量的值使用。结果是每次输出的值比上次的大1。,26,递归函数和递归调用,递归是程序设计中常用的一种程序设计方法递归

20、的含义就是用自己的定义来说明自己递归函数就是具有函数自身调用功能的函数这种调用就称为递归调用递归函数中使用静态变量能够使值发生传递,是一种很重要的应用方法为了避免死循环,在设计递归函数的时候,必须有一个明确的且必定会发生的条件来终止函数的递归调用,函数第一次调用:$count=0,$count+1,输出 1,$count 10函数被第二次调用:$count=1,$count+1,输出 2,$count 10函数被第三次调用:$count=2,$count+1,输出 3,$count 10函数被第四次调用:$count=3,$count+1,输出 4,$count 10函数被第十次调用:$cou

21、nt=9,$count+1,输出 10,$count=10$count-,返回。然后依次$count-,返回,27,活动变量,活动变量类似于语言中的指针所谓活动变量,是指动态地设置和使用一个变量的名称示例一个普通变量的声明:$a=“hello”$a为普通变量,值为hello一个活动变量的声明:$a=“world”活动变量将$a的值作为变量名,并赋值worldecho“$a$a”;echo“$a$hello”;活动变量的好处是可以动态地引用/设置一个变量的名字数组中使用活动变量$ai可表示为$ai 作为变量名,下标变量$a的第i个变量,$ai可表示为$a 作为变量名,a变量值为变量名组成的数组的

22、第i个分量$ai,28,外部PHP变量(1),由客户端提供的信息,在PHP中被视作外部的变量得到响应HTML表单当表单被提交后,PHP脚本将自动设置从表单获得的变量为可用变量在php_track_var特性打开的情况下,可使用全局联合数组:$HTTP_POST_VARS、$HTTP_GET_VARS图象提交变量名字当提交表单的按钮视一个图象按钮时,表单程序会使用两个附加的变量_x和_y来记录用户点击在该图片上的位置信息。(sub_x,sub_y)HTTP cookies可使用setcookie()函数对cookie进行设置任何从服务器发送到客户端的cookies将自动转化为一个PHP变量如果希

23、望对单个的cookie指派多个值,只要使用cookies数组即在cookie的名字后加 Setcookie(MyCookie,Testing,time()+3500),29,外部PHP变量(2),环境变量PHP自动使用环境变量作为普通变量:echo$HOMEPHP可使用内置函数读取外界的环境变量信息:getenv();PHP可使用内置函数设置外界的环境变量值:putenv();,30,数据类型的自动转换,PHP不需要在声明变量时确定它的变量类型,一个变量的类型是由这个变量被使用的前后关系来决定的PHP自动转换类型的典型例子是运算符“+”$var=“0”$var为字符串变量“0”$var+$va

24、r仍为字符串变量“1”$var+=1$var转换为一个整数 2$var=$var+1.3$var成了一个双精度数 3.3$var=10+“5 littles”$var保存的将是数值 15当字符串转换成整数时,若字符串的开始为数字串,则取该数值为字串的值,否则取0值,31,类型转换规则,确定一个变量的类型因为PHP自己决定变量的类型,并且常常按需要转换变量的类型,所以一个变量的类型往往不是在任何时刻都很明确的PHP有一些函数可以找出一个变量的确切类型gettype()、is_long()、is_array()、is_string()、is_object()类型转换PHP中变量除了可自行转换外,还

25、可以被要求强制转换。强制转换时,将需要的类型名写在变量前的括号内即可$var=10;$bar=(double)$var;字符串转换当一个字符串被当作数值来计算时,它的结果和类型如此确定字符串中含有“”、“e”或“E”,则被当作双精度类处理,否则作整数处理字符串以任何有效的数字开头,则这个数字就是字串参加运算的值,否则为0初始化对象初始化一个对象用new语句,class foo function do_foo()echo Now doing foo.;$bar=new foo;$bar-do.foo();上述程序中,class 部分为对象的说明部分,$bar=new foo;为对象初试化操作$b

26、ar-do.foo();为对象中的函数调用,32,PHP的数组处理,数组初始化使用连续的指定值进行数组的初始化,连续指定时不需指明标号例:$name=张为;$name=李文;$name=赵悦;下标为 02数组的最小下标是0,不是1数组的操作PHP同时支持标量数组(Scalar Array)和关联数组(Associative Array),实际使用中不会感到两者之间的任何区别通过使用函数创建数组:list()或 array()通过赋值创建数组:$a0=abc;$a1=Smith通过函数处理数组:asort(),arsort(),ksort(),rsort(),sort(),unsort(),us

27、ort()等函数可用于排序,count()用于统计数组中的元素个数,next(),prev(),each()等函数可用于遍历数组,33,基本运算符,算术运算符+、-、*、/、()、mod()等字符运算符 连接符$a=“Hello”;$b=“World”;$c=$a$b赋值运算符=、+=、=、-=、*=、/=等,除=外其他运算符称为复合运算符位运算符按位进行运算的符号:&、|、参见p.157逻辑运算符and、or、xor、&、|、!,34,其他运算符,比较运算符=、!=、=特殊运算符$&(加在变量前,表示变量的指针)(加在函数前不显示错误信息)-(引导对象的方法或属性)=(引导数组的元素值)?:

28、(三元运算符)(expr1)?(expr2):(expr3)类似 if then else,7.3.6 PHP的基本语句,36,表达式,表达式的定义:任何内容都有它的值,即表示一个对象的值的语句称为表达式$a=5:变量赋值表达式,$a=5本身的计算结果为 5$b=$a:值传递表达式,$b=$a本身的计算结果为$a的值Function foo()return 5 foo()的返回值是5,foo()也是一个 表达式PHP式一种面向表达式的语言,每一个操作都是一个表达式表达式$a=5的值为5$b=($a=5)等价于$a=5;$b=$a也可以表示为$b=$a=5,37,关于前递增与后递增,前递增在读出

29、变量的值之前递增变量的值,表示为+$var后递增在读出变量的值之后递增变量的值,表示为$var+组合操作符表达式$a+=3;$b*=6;$x-=5;前/后递增表达式的应用$b=$a=5;$c=$a+;$e=$d=+$b;$g-=$b$f=$g+=$e+;$h=$g+=12;表达式与语句表达式可以是语句,但不是所有表达式都是语句$a=5 是一个表达式,但不能由其自己构成一个语句,而$b=5:却是一个有效的语句,38,条件控制语句,if(expr)statements;if(expr)statements1 else statements2 if(expr1)statements1 elseif(

30、expr2)statement2 else statements3 if(expr):statements;else:statements;endif,单一执行语句形式的if控制语句if($a$b)print a is bigger then b.,多执行语句形式的if控制语句if($a$b)$t=$a;$a=$b;$b=$t;print a if bigger then b.,嵌套的if语句if($a$b)print$a;print$b;print“a is bigger then b.”elseif($a=$b)print“a is equal b.”else print“a is sma

31、ller then b.”,PHP的if控制语句与HTML语句交互的语法PHP使用了一种特殊的方法将HTML语言嵌套在if语句中。方法是在if表达式之后跟随一个冒号:,然后嵌入HTML语句,最后用endif结尾 A=15 now.,对PHP条件控制语句和循环控制语句中的逻辑表达式而言,具体的值无关紧要,只要确定其值为True或False,所以,PHP对于这些表达式的结果只要非零的数值都是True,零是False,0/0/空串为False,其他(包括负数)为True;对数组和对象,无任何元素的为False,否则为True。,39,循环控制语句,while(expr)statements;whil

32、e(expr):statements;endwhile;do statements;while(expr)breakcontinue,当型循环,循环前检测,循环次数0。示例:,当型循环的交互形式,循环次数0。示例:,当型循环,循环后检测,循环次数1。示例:,终止当前循环的执行,并跳出当前循环。当然,break不仅仅适用循环,也可应用在条件分枝上。示例:,执行本语句将结束本次循环,跳到循环体的开始处,接着进行下一次的循环判定,也称为“短路循环”。,40,FOR循环语句,For(expr1;expr2;expr3)statements;这是php中最复杂的循环形式expr1:在循环开始前无条件的被

33、求解执行expr2:每次循环开始时被执行,结果为真则循环继续;结果为假则循环结束expr3:每次循环结束时被执行一般情况下,expr1用来确定循环控制变量的初值,expr2用来确定循环控制变量的终值,expr3用来调整循环控制变量的值任何一个表达式都可以是空的。expr2为空则循环次数不确定For循环也支持交互的“冒号语法”For(expr1;expr2;expr3):statements;endfor;,使用for循环时,同一个问题可以有多种表示形式,例:要求打印输出数字110。第一种方法:第二种方法:10)break;print$k;?,第三种方法:10)break;print$k;$k+

34、;?第四种方法:,41,Switch语句,Switch是多路分支语句,虽然可以通过多重嵌套的if语句来实现多路分支,但嵌套越深,程序的可读性越差Switch语句的语法switch(var)case val1:statements1;case val2:statwments2;case valN:statementsN;default:statements;,几点说明:1)case语句的个数并没有规定,可以无限制增加;2)最后的default是表示在前面所有可能的取值都不满足时的处理方式,但不是必须的,可以没有3)switch语句是依序逐条执行的,直到switch体的结束,或者遇到了break语

35、句,switch语句才停止执行。所以,如果在一个分支语句的后面没有写上break语句,则程序将继续执行下一个分支语句的内容。,42,Require和Include语句,require(文件名)头文件包含语句,静态包含,始终以指定的文件来替代include(文件名)头文件包含语句,动态包含,执行到该语句时才会用指定的文件来替代根据以上特定,include语句可以出现在循环控制结构中,以便按需包含不同的头文件;require语句不能出现在循环控制语句中,不能实现按需包含的要求特殊要求include语句出现在if语句中时,必须封闭在一个语法块中,$files=array(first.inc,seco

36、nd.inc,third.inc);For($k=0;$kcount($files);$k+)include($files$k);,If($cond)if($cond)include($file);include($file);Else else include($other);include($other);错误的用法 正确的用法,43,PHP的自定义函数,函数定义的一般形式function fun_name($arg1,$arg2,$argN)statements;return$ret_val;函数中可以使用任何有效的PHP代码,甚至是其他的函数或类的定义返回值函数通过return语句返回

37、结果,返回值可以是任何类型的,包括列表、对象。函数不能直接返回多个值,但可以通过返回列表的方式实现。参数外部信息通过参数表传递给函数。Php支持值传递方式(默认方式),也支持地址传递方式。可以定义形式参数为变量参数,也可以直接传变量地址,函数体。是实现某种功能的语句的有序集合。,函数的返回值,常量、变量,均为值传递。即传递后不改变传递的信息本身。,通过使用变量参数的方式进行地址传递,方法是在引用的变量前加上符号&。即传递后可以直接改变传递的信息本身。,程序执行后的结果是:This is a string,and something extra.,程序执行后的结果是:This is a stri

38、ng,This is a string,and something extra.,44,PHP自定义函数(续),默认值函数定义时,可以定义拥有默认值的参数,即给形式参数赋值函数定义时,如需定义拥有默认值的参数,须先定义无默认值的参数,后定义有默认值的参数,执行的结果是提示出错,执行的结果是:Making a bowl of acidophilus raspberry.,45,PHP的对象类,类是一系列变量和函数的集合,是对象的模型类的定义Class 类名称 变量表;函数声明列表;$this的含义表示当前对象$this-表示存取当前对象的指定变量或函数,示例1Class Cart var$ite

39、ms;function add_item($artnr,$num)$this-items$atrnr+=$num;function remove_item($artnr,$num)if($this-item$artnr$num)$this-item$artnr-=$num;return true;else return false;,示例2Class Data Var$item;$cname;$cage;function add_item($name,$age,$num)$this-item$num=$num;$this-cname$num=$name;$this-cage$num=$age;

40、function remove_item($num)$n=count($this-item);for($k=$num;$kcname$k=$this-cname$k+;$this-cage$k=$this-cage$k+;,46,类变量的创建和类的扩充,自定义类的变量创建$my_cart=new Cart;$my_data=new Data;添加数据记录或删除数据记录$my_cart-add_item(20,1)$my_cart-remove(20,2)$my_data-add_item(David,42,1);$my_data-remove(3);类构造器类中的构造器是创建类的新变量时自动调

41、用的函数类中与类名相同的函数就是类构造器类构造器可以是带有默认值的 P.173Class Auto_cart extends Cart function Auto_cart()$this-add_item(“10”,1),类的扩充扩充的类拥有基类的所有变量和函数,并且拥有在扩充类中新定义的变量和函数扩充类定义时使用extends关键字Class New_Cart extends Cart var$owner;function set_owner($name)$this-owner=$name 这里定义了一个新类new_cart,是类cart的扩充类,它除了拥有新定义的变量$owner和函数se

42、t_owner以外,还继承了父类的所有变量$items和函数add_item,remove_item。,($tem:10,$num=1)($item,$num),带参数的类的变量的创建:$new_cart1=new Auto_cart();$new_cart2=new Auto_cart(20,16);,7.4 PHP访问MySQL数据库,48,MySQL数据库的历史,SQL-Structured Query LanguageMySQL之前,在互联网上广泛使用的是mSQL(miniSQL)mSQL小型、简单,但不完全支持SQL,且不太安全MySQL由瑞典公司开发的功能强大、快速而价钱低廉的数据

43、库软件,具有伸缩性、完全支持SQL、支持ODBC、比较安全MySQL的特点对于多数Unix平台与应用程序,MySQL可以免费获得MySQL是多线程、多用户的数据库系统MySQL支持多平台支持SQL92标准,可以使用所有的select和where语法提供多种API(包括C+、Eiffel、Java、Perl、PHP、Python、TCL等)具有丰富的数据类型(1,2,3,4,8字节的Integer、Float、Double、Char、Varchar、Text、Data、Time、Datetime、Timestamp、Year、SET、Enum)可从多个数据库中混合不同的表格(直接构成逻辑视图)完

44、全支持ODBC,可在win9x/NT上使用Access数据库,缺省用户的权限是全部可读写的,不太可靠,MySQL与PHP的结合让编写基于数据库的应用程序非常容易。编译时Apache已经将PHP包含其中,系统连接MySQL监控程序的负载及其轻微。MySQL是一种小型的SQL数据库,整体性能比mSQL有提高。MySQL的最大优势在于数据库检索的速度。,49,MySQL与其他数据库的比较,Oracle大型数据库,稳定、安全在数据库检索上采用了复杂算法,不适合小型简单应用场合Access小型数据库系统,适合于使用微软平台、访问量较小的场合SQL Server适合于使用微软平台、质量要求一般的场合主要特

45、点是容易使用,不适合高性能要求的场合MySQL小型、稳定、安全、数据库性能较高,50,MySQL数据库的安装,MySQL安装包的获取从网站上下载MySQL安装包可下载windows平台的MySQL安装包,也可以下载Unix下的Windows环境下安装MySQL将获得的安装包解压缩,然后运行安装程序除了MySQL安装包外,还要从网站上下载MyODBC的驱动程序,以便可通过其他应用程序与MySQL相连在win9x下安装MySQL安装TCP/IP协议:MySQL是使用TCP/IP协议连接客户端和服务器的安装MySQL(若安装目录不是缺省目录,可先安装在缺省目录中,然后再移动到指定目录的办法,移动后须

46、使用“MySQL basedir 新目录名”启动)选择MySQLd或MySQLd opt运行方式启动MySQL服务:在命令窗口内运行“MySQLd”终止MySQL运行:在命令窗口内执行“MySQLadmin u root shutdown”,使用调试和自动内存管理的方式编译,使用对Pentium优化的版本,在中国地区有两个镜像站点可供快速下载:、,51,MySQL数据库的安装(续1),在WinNT平台下安装MySQL安装过程与win9x下基本相同,所不同的是,必须在NT上安装service pack 3或以上版本,且最好把MySQL安装成为服务器安装命令:MySQLd nt install启动

47、MySQL服务命令:Net Start MySQL关闭MySQL服务命令:Net Stop MySQL在Linux平台下安装MySQL两种安装模式RPM(二进制代码形式):安装最为方便,但不可定制,可能未必运行在最高性能上Src(源代码形式):可以定制安装,可使用更多的个性化选项,但安装起来较为麻烦,52,MySQL数据库的安装(续2),RPM包方式安装Linux环境下的MySQL确认已经安装了RPM软件确认是以root身份登陆系统的将MySQL安装包复制到Linux的机器上,或者是Linux可以访问的驱动器上确认将要安装的MySQL包含了两个RPM包:The server for i385

48、systems 和 Clien programs for i386 systems在安装目录下运行以下命令rpm ivh MySQLrpm ivh MySQL在根目录下运行 setup 启动MySQL,并且可以在随后出现的对话框中选择“System Services”,再选择MySQL的启动方式(自动启动/手动启动)终止MySQL的数据库服务/etc/rc.d/init.d/MySQL stop关闭后的重新启动/etc/rc.d/init.d/MySQL start,链接测试使用 MySQL u root MySQL 命令进行测试,如果能显示MySQL的版本信息,并最终出现 MySQL,表示安

49、装成功。可以用 exit 命令返回到系统提示符下。,53,链接测试,安装完成后通过链接测试来检验是否完成正确地安装了整个数据库,可以使用任何MySQL命令进行监测常用 MySQL u root MySQL 命令直接对MySQL进行访问,如果正常,则会返回如下消息Reading table information for completion of table and column namesYou can turn off this feature to get aqicker startup with A welcome to the MySQL monitor.Commands end w

50、ith;or g.Your MySQL connection id is 21 to server version:3.22.27 Type help for helpMySQL 安装正确,执行 exit 命令返回系统提示符,54,MySQL中的应用程序,MySQL中有大量的应用程序,使用MySQL其实就是使用MySQL中的应用程序MySQL中的程序包括客户端程序、数据库管理程序、数据备份工具等MySQL程序都是基于命令行的,含有大量的参数支持其强大的功能为了便于用户对参数应用的了解,每个程序都带有一个特别的参数:help,使用这个参数可以查看本程序允许使用的参数、参数的作用、用法等使用简介,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号