PHP编程基础与实例教程第3版(中篇共上中下3篇)_第1页
PHP编程基础与实例教程第3版(中篇共上中下3篇)_第2页
PHP编程基础与实例教程第3版(中篇共上中下3篇)_第3页
PHP编程基础与实例教程第3版(中篇共上中下3篇)_第4页
PHP编程基础与实例教程第3版(中篇共上中下3篇)_第5页
已阅读5页,还剩137页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP编程基础与实例教程第三版

PHPFundamentals&Practices3ndEdition第6章PHP处理FORM表单

主讲:孔祥盛

本章大纲6-1认识GET请求、FORM表单和POST请求6-2FORM表单6-3文件上传功能的实现6-4URL路径6-5其他常用的预定义变量6-1认识GET请求、FORM表单和POST请求GET译作“获取、获得”,浏览器向Web服务器发送GET请求的主要目的是从Web服务器获取网页数据。有时我们需要向Web服务器提交数据,此时我们需要借助FORM表单向Web服务器发送POST请求。POST译作“邮寄、投递”,FORM表单就像是一份快递单。6-1认识GET请求、FORM表单和POST请求想象一下我们邮寄包裹的场景:我们从快递员处申领一份快递单,填写收件人和发件人后,就可以将包裹“投递”给快递公司的快递员了。同样的道理,我们运行Web服务器的某个FORM表单程序,从Web服务器申领一张FORM表单,填写FORM表单,点击提交按钮后,FORM表单上填写的数据就被“投递”给Web服务器的PHP程序了。6-1认识GET请求、FORM表单和POST请求总之,浏览器向Web服务器发送POST请求的主要目的就是将FORM表单上填写的数据提交给Web服务器的PHP程序,PHP程序就可以通过预定义变量$_POST获取POST请求中的参数信息。FORM表单由表单标签、表单控件和表单按钮3个部分组成,通常情况下,表单控件和表单按钮必须放在表单标签中才有意义。6-2FORM表单6-2FORM表单1.

表单标签外观上,表单标签类似于表格的虚框,虽无法显示,但它是表单控件和表单按钮的容器,定义了表单的边界。功能上,表单标签设置了表单数据的提交方式、表单数据的处理程序。表单标签像编剧,虽然默默存在却能决定剧情。表单标签的语法格式如下。<formaction="处理程序"method="post"name=""enctype="">这里是表单控件的代码和表单按钮的代码。</form>6-2FORM表单2.

表单控件外观上,表单控件在浏览器上可见。功能上,它允许浏览器用户填写数据或者选择数据。表单控件像演员,总是能够在浏览器用户面前华丽现身。表单控件包括单行文本框、单选框、多行文本框和下拉列表等。6-2FORM表单2.

表单控件

(1)单行文本框

(2)密码框6-2FORM表单2.

表单控件

(3)复选框6-2FORM表单2.

表单控件

(4)单选框

(5)单选框6-2FORM表单2.

表单控件

(6)下拉选择框6-2FORM表单2.

表单控件

(7)单选框

6-2FORM表单2.

表单控件

(8)文件上传框

6-2FORM表单3.

表单控件的其他常用属性

(1)required属性:告诉浏览器该表单控件必须填写,如果留空,提交表单时将阻止提交,并显示警告信息,该属性无须设置值。

(2)placeholder属性:当表单控件留空时,设置需要显示的提示信息。

(3)disabled属性:禁用该表单控件,该属性无须设置值。

6-2FORM表单4.

其他表单控件

(1)邮箱输入框

6-2FORM表单4.

其他表单控件

(2)数字输入框

6-2FORM表单4.

其他表单控件

(3)表单控件分组

6-2FORM表单5.

表单按钮

(1)提交按钮

(2)重置按钮

6-2FORM表单6.

补充知识

1.GET提交方式和POST提交方式的特点(1)POST提交方式比GET提交方式安全。(2)POST提交方式可以提交更多的数据。(3)GET提交方式不能用于文件上传。POST提交方式支持文件上传。(4)GET提交方式提交的数据需要通过预定义变量$_GET获取,POST提交方式提交的数据需要通过预定义变量$_POST获取。

6-2FORM表单6.

补充知识

2.将表单控件定义为数组

6-2FORM表单6.

补充知识

2.将表单控件定义为数组

6-3文件上传功能的实现1.

文件上传的相关配置

1.file_uploads。配置是否允许通过HTTP协议上传文件。默认值为On,表示Web服务器支持通过HTTP协议上传文件。典型配置示例:file_uploads=On

2.post_max_size。配置Web服务器能够接收的表单数据上限,默认值是8M,表示表单中所有提交数据(例如单行文本框+多行文本框+上传文件)大小之和必须小于8M字节,否则$_GET、$_POST和$_FILES将为空数组,PHP程序将不能采集到任何的表单数据。典型配置示例:post_max_size=8M

6-3文件上传功能的实现1.

文件上传的相关配置

3.upload_max_filesize。配置文件上传框允许上传文件的最大值,默认值为2M。如果表单有多个文件上传框,超过限制的文件上传框将上传失败,不超过限制的文件上传框将上传成功,文件上传框之间互不影响上传结果。典型配置示例:upload_max_filesize=2M

4.upload_tmp_dir。上传文件的过程中会产生临时文件,该参数配置了临时文件的目录。典型配置示例:upload_tmp_dir="d:/wamp/tmp"

6-3文件上传功能的实现1.

文件上传的相关配置

如果要上传“大”文件或者网速较慢,只进行上述配置未必行得通,此时还需进行下列配置。

1.max_input_time。配置单个PHP程序解析提交数据的最大允许时间,单位是秒,默认值为60。当设置为−1时,表示不限制。典型配置示例:max_input_time=60

2.memory_limit。配置单个PHP程序在Web服务器运行时,可以占用Web服务器的最大内存数,默认值为128M。当设置为−1时,表示不限制。典型配置示例:memory_limit=128M

6-3文件上传功能的实现1.

文件上传的相关配置

如果要上传“大”文件或者网速较慢,只进行上述配置未必行得通,此时还需进行下列配置。

3.max_execution_time。配置单个PHP程序在Web服务器运行时,可以占用Web服务器的最长时间,单位是秒,默认值为30。配置该参数可以有效避免死循环或大文件上传等程序长期占用Web服务器CPU导致Web服务器崩溃。如果设置值为0,表示不限制运行时间。典型配置示例:max_execution_time=30。

说明:在PHP程序中使用set_time_limit函数也可以设置该参数,例如set_time_limit(30)。

6-3文件上传功能的实现2.

PHP文件上传流程

6-3文件上传功能的实现3.

预定义变量$_FILES

例如使用如下代码可以获取用户注册表单中“个人相片”的上传文件信息。$_FILES['picture']['name']:上传文件的文件名。$_FILES['picture']['type']:上传文件的MIME类型。$_FILES['picture']['size']:上传文件的大小,单位为字节。$_FILES['picture']['tmp_name']:上传文件过程中产生的临时文件名。$_FILES['picture']['error']:上传文件的状态代码。$_FILES['picture']['full_path']:自PHP8.1.0起可用,记录了上传文件在浏览器端的完整路径。

6-3文件上传功能的实现3.

预定义变量$_FILES

上传文件的状态代码的取值及对应的意义如下。

0:文件上传成功。

1:上传文件的大小超过了upload_max_filesize参数设置的上限值。

2:上传文件的大小超过了隐藏域MAX_FILE_SIZE设置的上限值。

3:文件只有部分被上传。

4:表单没有选择上传文件。

6:缺少一个临时文件夹。

7:无法将文件写入磁盘。

6-3文件上传功能的实现4.

PHP文件上传的实现

1.is_uploaded_file函数语法格式:boolis_uploaded_file(stringfileName)函数功能:判断文件名为fileName的文件是否是文件上传过程中产生的临时文件。例如is_uploaded_file($_FILES['picture']['tmp_name'])的返回值为true。

6-3文件上传功能的实现4.

PHP文件上传的实现

2.move_uploaded_file函数语法格式:boolmove_uploaded_file(stringfileName,stringdestination)函数功能:用于将文件上传过程中产生的临时文件fileName重命名为目标文件destination。说明1:如果fileName不是文件上传过程中产生的临时文件,该函数不进行任何操作,并返回false。说明2:如果目标文件destination已经存在,将会被覆盖。

6-4URL路径6-4URL路径1.

URL绝对路径

2.

URL相对路径

URL相对路径分为server-relative路径与relative路径。

server-relative路径是以斜杠“/”开头的URL相对路径。例如“/6/post.php”。

relative路径是不以斜杠“/”开头的URL相对路径。例如“post.php”6-4URL路径3.

URL相对路径其他概念

1.相同目录下的资源访问,它们直呼其名即可访问对方程序。

2.“.”表示当前目录。

3.“../”表示当前目录的上一级目录,“../../”表示当前目录的上上一级目录,以此类推。6-5其他常用的预定义变量1.

$_REQUEST

$_REQUEST可以同时获取GET请求数据、POST请求数据以及Cookie请求头的数据,即$_REQUEST=array_merge($_GET,$_POST,$_COOKIE)。实际编程中,很少使用$_REQUEST。6-5其他常用的预定义变量2.

$_SERVER$_SERVER用于获取浏览器主机以及Web服务器主机的相关信息。$_SERVER["REMOTE_ADDR"]:用于获取浏览器主机的IP地址。$_SERVER["SERVER_ADDR"]:用于获取Web服务器主机的IP地址。$_SERVER["PHP_SELF"]:用于获取当前PHP程序的文件名。$_SERVER['QUERY_STRING']:用于获取URL网址中的查询字符串。$_SERVER['DOCUMENT_ROOT']:用于获取Web服务器的主目录。$_SERVER["REQUEST_URI"]:用于获取除域名外的其余URL网址部分。$_SERVER["HTTP_USER_AGENT"]:用于获取浏览器主机使用的操作系统、浏览器及其版本号信息。实践任务上机实践PHP处理FORM表单PHP编程基础与实例教程第三版

PHPFundamentals&Practices3ndEdition第7章自定义函数

主讲:孔祥盛

本章大纲7-1请求包含7-2自定义函数的语法格式7-3函数的调用7-4变量的作用域和生命周期7-5传值赋值和传引用赋值7-6global关键字7-7static关键字7-8变量函数7-9return和exit7-1请求包含

7-1请求包含请求包含的执行流程是:首先退出当前的PHP代码模式,进入HTML代码模式;目的资源执行完毕时,恢复到当前的PHP代码模式。7-1请求包含注意:如果目的资源包含PHP代码,那么这些PHP代码应该以“<?php”开始、以“?>”结束;如果目的资源第一行代码是“<?php”,请确保“<?php”的左边不要出现任何空格字符。7-1请求包含1.

请求包含的语法格式

7-1请求包含2.

四种请求包含的区别

7-1请求包含2.

四种请求包含的区别

7-1请求包含3.

请求包含的返回值

7-2自定义函数的语法格式

自定义函数使用关键词function定义,语法格式如下。functionfunction_name($param_1,$param_2,…$param_n=default_value){函数体return返回值;}7-3函数的调用

无论是自定义函数还是内置函数,调用函数的语法格式相同,如下所示。function_name(arg_1_value,arg_2_value,…arg_n_value)7-4变量的作用域和生命周期2.

使用array语句或“[]”语句创建数组

7-4变量的作用域和生命周期

定义变量时的位置,决定了该变量属于全局命名空间还是局部命名空间。

(1)在函数内定义的变量(包括函数的参数)属于局部命名空间,属于局部命名空间的变量称为局部变量,局部变量只能在函数内部访问。局部变量的生命周期非常短暂:函数被调用时,局部命名空间被创建,局部变量被放入到局部命名空间中;函数执行结束后,局部命名空间被删除,局部命名空间中的局部变量也被删除。7-4变量的作用域和生命周期

定义变量时的位置,决定了该变量属于全局命名空间还是局部命名空间。

(2)在PHP程序内、函数外定义的变量属于全局命名空间,属于全局命名空间的变量称为全局变量,全局变量被存放在$GLOBALS数组中,全局变量可以被PHP程序的所有PHP语句访问。全局变量的生命周期是:PHP程序运行时,全局命名空间被创建,全局变量被放入到全局命名空间中;PHP程序执行结束时,全局命名空间被删除,全局命名空间中的全局变量也被删除。

7-5传值赋值和传引用赋值1.

传值赋值

7-5传值赋值和传引用赋值2.

传引用赋值

7-5传值赋值和传引用赋值3.

传值+传引用赋值

7-6global关键字7-7static关键字7-7static关键字7-7static关键字7-8变量函数7-9return和exit7-9return和exit实践任务上机实践自定义函数PHP编程基础与实例教程第三版

PHPFundamentals&Practices3ndEdition第8章PHP结构化编程和PHP面向对象编程

主讲:孔祥盛

本章大纲8-1数组的必要性8-2PHP数组的特点8-3数组的分类8-4创建数组8-5访问、修改或删除数组元素8-6二维数组8-7数组的解包8-8数组处理函数8-1结构化编程结构化编程的核心思想是自顶向下、分而治之、功能分解。结构化编程认为:计算机程序由一组功能组成,任何过于复杂且无法简单描述的功能都可以被分解成一组更小的功能,直到这些功能足够小、足够独立、易于理解。结构化编程将功能分解成若干个子功能,功能之间相互调用,简化问题的同时最终解决了问题。功能的英文单词是function,对应于结构化编程中的“函数”。8-1结构化编程

8-1结构化编程

8-2面向对象编程面向对象编程能够在结构化编程的基础上进一步避免代码冗余、增强代码的复用性,现在的编程语言(例如Java、Python等)都是面向对象编程语言,PHP从PHP4开始,逐渐支持面向对象。8-2面向对象编程

8-3理解类和对象之间的关系类和对象之间的关系就像菜谱和菜之间的关系。菜谱罗列了食材和操作流程,但菜谱是类、不是对象,菜谱并不可以吃。厨师购买了食材,本质是厨师为菜谱中的食材赋值的过程;厨师按照操作流程可以做出无数佳肴,这些佳肴都是菜谱的对象。菜谱上罗列的食材是属性,菜谱上定义的操作流程是方法。8-3理解类和对象之间的关系类是模板,是蓝图(blueprint),是数据类型,一个类可以创建无数个对象,对象必须有数据类型,类与对象的关系是抽象与具体的关系。8-4自定义类、创建对象和方法的调用1.

自定义类和创建类的对象以自定义三角形类Triangle为例,语法格式如下所示。classTriangle{}关键字class表示自定义类,关键字class后跟类名(此处是Triangle),然后是“{}”。8-4自定义类、创建对象和方法的调用1.

自定义类和创建类的对象

8-4自定义类、创建对象和方法的调用2.

定义构造方法和创建类的对象PHP面向对象编程中的构造方法是__construct,通过构造方法可以为对象添加属性。魔法方法__construct的语法格式如下所示。[public]__construct(mixed...$values=""):void{$this->property1=$value1;$this->property2=$value2;}8-4自定义类、创建对象和方法的调用2.

定义构造方法和创建类的对象

8-4自定义类、创建对象和方法的调用2.

定义构造方法和创建类的对象

8-4自定义类、创建对象和方法的调用3.

定义方法和调用方法

8-5静态方法和静态方法的调用8-5静态方法和静态方法的调用在关键字function前加上关键字static,就可以将该方法声明为静态方法。由于静态方法的可调用时间是在创建对象前,因此,不能通过“$this”调用静态方法(“$this”表示当前对象)。在类的定义的内部,可以通过关键字self调用静态方法。由于“->”是对象操作符,而静态方法不能通过对象调用,为了解决这个问题,PHP引入了双冒号关键字“::”,用于调用静态方法(或静态属性)。

8-6PHP结构化编程和PHP面向对象编程

1.从问题域的角度结构化编程是面向“功能”的问题解决方案,是一种“自顶向下”“分而治之”“功能分解”的问题解决方案,问题被分解成若干功能,功能之间可以相互调用。面向对象编程是面向“数据类型”的问题解决方案,问题被分解成若干个数据类型(也叫类),通过类创建对象,管理了对象就管理了现实世界的事物。

8-6PHP结构化编程和PHP面向对象编程

2.从代码复用性的角度结构化编程是将程序中频繁使用的代码封装成函数,避免代码冗余,提高代码的复用性。面向对象编程是将联系过于紧密的“参数”和“函数”“封装”在一起形成“类”,通过类创建对象,对象的方法可以“隐式地”访问自己($this)的属性,避免了“参数”冗余。

8-6PHP结构化编程和PHP面向对象编程

3.从函数(或者方法)调用的角度结构化编程中,函数之间可以相互调用,继而实现了函数之间的相互通信。面向对象编程中,对象的方法之间可以相互调用,继而实现了对象之间的相互通信。

8-6PHP结构化编程和PHP面向对象编程

4.从耦合的角度调用函数时,通信的内容是参数,参数的英文单词是parameter。结构化编程认为函数和参数是两个单独的事物,函数和参数之间不应该联系过于紧密,为了清晰起见应该单独存放,函数和参数之间的耦合度很低。函数一经定义,便可直接调用。8-6PHP结构化编程和PHP面向对象编程

4.从耦合的角度调用方法时,通信的内容是属性(可能还有普通参数),属性的英文单词是property。面向对象编程认为方法能够“隐式地”访问属性,属性和方法相互依存,应该将其看作一个不可分割的整体,不应该单独存放,方法和属性之间的耦合度很高,并且属性和方法必须依附于对象才能存在。不能够直接调用方法,必须先对属性进行初始化(即创建对象),再通过对象调用方法。8-6PHP结构化编程和PHP面向对象编程

5.从文件结构的角度函数(function)直接定义在PHP程序中,函数一经定义便可直接调用。方法(method)定义在类中,类定义在PHP程序中,如图所示。先通过类创建对象,再通过对象调用方法。实践任务上机实践PHP面向对象编程PHP编程基础与实例教程第三版

PHPFundamentals&Practices3ndEdition第9章MySQL数据库

主讲:孔祥盛

本章大纲9-1数据库概述9-2MySQL安装和配置9-3数据库的管理9-4SQL脚本文件9-5表结构的管理9-6表记录的更新操作9-7表记录的查询操作9-1数据库概述1.

数据库管理系统和数据库数据库(Database简称为DB)是存储数据的仓库,数据库管理系统(DatabaseManagementSystem,简称DBMS)为数据库用户提供了管理数据库的接口。目前,主流的数据库管理系统称是关系数据库管理系统(RelationalDatabaseManagementSystem,简称RDBMS),所谓关系,实质上是一个二维表。9-1数据库概述1.

数据库管理系统和数据库

9-1数据库概述2.

表结构和表记录

9-1数据库概述3.

SQL

SQL(StructuredQueryLanguage,结构化查询语言)是一种应用最为广泛的关系数据库语言,它定义了操作关系数据库的标准语法,包括MySQL在内的所有关系数据库管理系统都支持SQL。9-2MySQL安装和配置

DB-Engines是一个收集数据库管理系统信息的机构,该机构每月都会更新数据库管理系统的受欢迎程度,2022年1月排名前十的数据库管理系统。9-2MySQL安装和配置

MySQL分为企业版(Enterprise)、集群版(Cluster)和社区版(Community),其中社区版免费且开源,本书选用社区版。MySQL官网有这么一句话:MySQLCommunityServeristheworld'smostpopularopensourcedatabase,意思是MySQL社区版是世界上最受欢迎的开源数据库。MySQL最新版本是8.0.28,并提供了免安装和界面安装两种安装方式,其中界面安装又分为在线安装和离线安装。由于界面安装对操作系统的环境要求较为苛刻,本书选择免安装方式。9-2MySQL安装和配置

MySQL分为企业版(Enterprise)、集群版(Cluster)和社区版(Community),其中社区版免费且开源,本书选用社区版。MySQL官网有这么一句话:MySQLCommunityServeristheworld'smostpopularopensourcedatabase,意思是MySQL社区版是世界上最受欢迎的开源数据库。MySQL最新版本是8.0.28,并提供了免安装和界面安装两种安装方式,其中界面安装又分为在线安装和离线安装。由于界面安装对操作系统的环境要求较为苛刻,本书选择免安装方式。9-3数据库的管理(1)showdatabases(2)createdatabase(3)use(4)dropdatabase(5)ifexists和ifnotexists条件运算符(6)showcreatedatabase9-4SQL脚本文件SQL脚本文件本质是一个包含SQL命令的“文本文件”。

注意:当SQL脚本文件含有中文字符时,为了确保SQL脚本文件中的命令能够成功执行,务必将SQL脚本文件的字符编码设置为ANSI(中文简体Windows操作系统中的ANSI等效于GBK)。9-4SQL脚本文件

执行SQL脚本文件中的所有MySQL命令有两种方法。

(1)在MySQL客户机输入下面的MySQL命令(任选一条),即可执行db.sql脚本文件中的所有MySQL命令。\.D:/wamp/www/9/db.sqlsourceD:/wamp/www/9/db.sql注意:“db.sql”后不能有分号,否则将执行“db.sql;”脚本文件中的MySQL命令,而“db.sql;”脚本文件是不存在的。

(2)将SQL脚本文件中的所有MySQL命令复制、粘贴到MySQL客户机,即可执行db.sql脚本文件中的所有MySQL命令。9-5表结构的管理1.

创建表结构前的准备工作(1)为表结构选择合适的字符集。推荐选择utf8mb4字符集,该字符集可以存储表情字符。(2)为表结构选择合适的存储引擎,推荐使用InnoDB存储引擎。(3)为字段选择合适的数据类型,MySQL中常用的数据类型如下所示。(4)为字段选择合适的约束条件。(5)自增型字段,自增型字段必须是整数类型,且值不能重复。9-5表结构的管理2.

创建表结构的语法格式createtable表名(字段名1数据类型[约束条件],字段名2数据类型[约束条件],…[其他约束条件],[其他约束条件])auto_increment=1charset=utf8mb4engine=InnoDB;9-5表结构的管理3.

创建users表的表结构9-5表结构的管理4.

查看表以及查看表结构(1)showtables;(2)desc或者describe(3)showcreatetable9-5表结构的管理5.

删除表结构的语法格式MySQL命令“droptable”用于删除表结构。例如,MySQL命令“droptableifexistsusers;”用于删除users数据库表的表结构。表结构一旦删除,表中的记录也随之删除(该命令慎用!)。就像删除了文件,文件中的数据也随之删除。说明:在droptable命令中可以添加关键字“ifexists”。9-6表记录的更新操作1.

insertinsert命令负责向数据库表增加记录,语法格式如下所示。insertinto表名[(字段列表)]values(值列表);9-6表记录的更新操作2.

updateupdate命令负责修改数据库表的字段值,语法格式如下所示。update表名set列名1=值1[,列名2=值2,…,列名n=值n][where条件表达式]9-6表记录的更新操作3.

deletedelete命令负责删除数据库表中的某行记录,语法格式如下所示。deletefrom表名[where条件表达式]9-7表记录的查询操作数据库操作使用频率最高的SQL命令是select命令,select命令的语法格式如下。select字段列表from表名1,表名2[where条件表达式][groupby分组字段][orderby排序字段[asc|desc]]9-7表记录的查询操作1.

distinct和limit(1)关键字distinct用于过滤结果集中重复的记录,语法格式如下所示。distinct字段名(2)关键字limit用于指定查询前几行或者中间几行的表记录,语法格式如下所示。limit[start,]length说明:limit接受一个或两个整数参数。start表示从第几行记录开始,length表示查询多少行记录。start可以省略,表示从表中第1行记录开始查询。注意:第1行记录的start值为0(不是1)。9-7表记录的查询操作3.

使用where子句过滤结果集where条件表达式用于指定记录的过滤条件,对查询结果进行过滤筛选。若省略了where条件表达式,则表示查询表中的所有记录。语法格式如下所示。where条件表达式9-7表记录的查询操作3.

使用where子句过滤结果集1.比较运算符单一的过滤条件可以使用下面的条件表达式表示,“表达式1”和“表达式2”可以是一个字段名、常量、变量、函数。表达式1比较运算符表达式2(1)算术比较运算符常用的比较运算符有=(单个等号)、>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、<>(不等于)、!=(不等于)、!<(不小于)、!>(不大于)。9-7表记录的查询操作3.

使用where子句过滤结果集(2)isnull运算符isnull用于判断表达式的值是否为null,语法格式如下所示。表达式is[not]null注意:与null比较时,必须使用is运算符(或者isnot),原因是null是一个不确定的数。任何数使用“=”、“!=”等比较运算符与null进行比较,结果依然为null。9-7表记录的查询操作3.

使用where子句过滤结果集(3)集合运算符in集合运算符in用于判断一个表达式的值是否属于集合中的元素,语法格式如下所示。表达式[not]in(集合)说明:离散的数值型的数、若干个字符串、select命令返回值(必须是单个字段)等都可以作为集合。9-7表记录的查询操作3.

使用where子句过滤结果集(4)模糊查询运算符like模糊查询运算符like用于将字符串表达式与给定的模式进行匹配,like运算符的语法格式如下所示。字符串表达式[not]like模式模式是一种特殊的字符串,特殊之处在于它通常包含如下所示的通配符。%:表示匹配零个或多个字符组成的任意字符串。_(下划线):表示匹配任意一个字符。9-7表记录的查询操作3.

使用where子句过滤结果集2.逻辑运算符逻辑运算符通常用于将多个条件表达式连接起来,形成一个条件表达式。(1)逻辑非!(2)逻辑运算符and(3)逻辑运算符or(4)between…and…运算符9-7表记录的查询操作4.

使用orderby对结果集排序select命令的查询结果集往往是无序的,orderby可以将结果集中的记录按照一个或多个字段的值排序,排序的方向可以是升序(asc)或降序(desc),默认是升序asc。语法格式如下所示。orderby字段名1[asc|desc][…,字段名n[asc|desc]]9-7表记录的查询操作5.

使用聚合函数汇总结果集(1)count函数用于统计结果集中记录的行数。(2)sum函数用于对数值型字段的一列值进行累加求和。(3)avg函数用于对数值型字段的一列值求平均值。(4)max函数和min用于对数值型字段的一列值求最大值与最小值。9-7表记录的查询操作6.

使用groupby子句进行分组groupby子句与聚合函数一起使用才有意义,用于将查询结果集按照某个字段(或多个字段)进行分组(字段值相同的记录作为一个分组)。语法格式如下所示。groupby字段列表9-7表记录的查询操作7.

select命令的综合应用实践任务上机实践MySQL数据库PHP编程基础与实例教程第三版

PHPFundamentals&Practices3ndEdition第10章PHP访问MySQL数据库

主讲:孔祥盛

本章大纲10-1PHP访问MySQL数据库的方法10-2PDO连接MySQL数据库10-3PDO对象的prepare方法10-4创建数组10-5PDO对象的lastInsertId方法10-1PHP访问MySQL数据库的方法使用MySQL扩展:PHP最早访问MySQL数据库的方法,从PHP7开始,该方法被弃用,因此不建议在新项目中使用它。使用MySQLi扩展:MySQLi中的“i”表示improved,在MySQL扩展的基础上进行了改进,也被称为MySQL扩展的改进版。MySQLi扩展即支持采用结构化编程的方式访问MySQL数据库,同时也支持采用面向对象编程的方式访问MySQL数据库。10-2PDO连接MySQL数据库

创建PDO类实例化对象的过程,就是PDO连接数据库的过程。PDO类的构造方法语法格式如下所示。__construct(string$dsn,string$username=null,string$password=null)10-2PDO连接MySQL数据库

10-3PDO对象的prepare方法

PDO对象的prepare方法用于准备执行SQL语句并返回准备好的SQL语句对象,语法格式如下所示。PDO->prepare(string$query,array$options=[]):PDOStatement10-4PDOStatement对象的execute方法

prepare方法的返回值是PDOStatement对象(准备好的SQL语句对象)。PDOStatement对象可能包含诸如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论