网络应用程序设计-PHP导论(MySQL篇).ppt

上传人:小飞机 文档编号:5301078 上传时间:2023-06-23 格式:PPT 页数:59 大小:467KB
返回 下载 相关 举报
网络应用程序设计-PHP导论(MySQL篇).ppt_第1页
第1页 / 共59页
网络应用程序设计-PHP导论(MySQL篇).ppt_第2页
第2页 / 共59页
网络应用程序设计-PHP导论(MySQL篇).ppt_第3页
第3页 / 共59页
网络应用程序设计-PHP导论(MySQL篇).ppt_第4页
第4页 / 共59页
网络应用程序设计-PHP导论(MySQL篇).ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《网络应用程序设计-PHP导论(MySQL篇).ppt》由会员分享,可在线阅读,更多相关《网络应用程序设计-PHP导论(MySQL篇).ppt(59页珍藏版)》请在三一办公上搜索。

1、PHP导论(MySQL篇),段会川山东师范大学信息科学与工程学院2006年10月,2023/6/23,2,目 录,什么是MySQL?LAMP与WAMP数据库中的表查询(Query)MySQL的应用在PHP中连接MySQL数据库MySQL连接举例创建数据库创建数据库示例创建表创建表示例,2023/6/23,3,目 录,数据类型数值数据类型文本数据类型日期时间类型其它数据类型主键自增字段主键示例向数据表中插入数据插入数据示例使用表单插入记录,2023/6/23,4,目 录,SELECT语句使用查询结果在HTML表格中显示查询结果使用WHERE子句WHERE子句中的运算符使用ORDER BY子句更新

2、数据语句UPDATE删除数据语句DELETE FROM小测验,2023/6/23,5,什么是MySQL?,MySQL Server是一种开放源代码的数据库服务器系统,它被广泛地用于Web上数据库定义了存储信息的结构数据库包括一些表简单地说,这些表就如同HTML中的表格,由行、列和数据单元组成数据库对于分类的存储信息尤其有用一个企业可能会有如下一些数据库表:职员表(Employees),产品表(Products),客户表(Customers)和订单表(Orders)等,2023/6/23,6,LAMP,LAMP(Linux+Apache+MySQL+PHP)被称为是建设网站的黄金组合这个组合中的

3、系统全部是开源的,即不需要花一分钱,也不必担心介入正版软件费用和版权之争中Apache是一个运行效率和可靠性、安全性都非常高的Web服务器系统MySQL与PHP两个系统互相提供了功能、效率、易用等方面的支持,同时它们又对Apache系统提供了特别的支持,2023/6/23,7,WAMP,WAMP指的是Winodws+Apache+MySQL+PHP鉴于Windows系统巨大的用户占有量,Apache、MySQL和PHP系统都实现了到Windows系统的移植WAMP既可以充分发挥Windows系统易于操作的特点,又可以利用Apache、MySQL和PHP系统的零投入、高效率、高可靠性和高安全性等

4、特点PHP对MS SQL Server提供了很好的支持我们也可以使用Winodws+Apache+MSSQL+PHP建站遗憾的是,这个组合没有被称为WAMPPHP也可以运行在IIS Web服务器上我们还可以使用Winodws+IIS+MSSQL+PHP建站,2023/6/23,8,数据库中的表,数据库中的每个表都有一个名字(如:Customers或Orders),每个表包括一些数据记录(或称为行)下面是一个表persons的示例,2023/6/23,9,查询(Query),查询是一个问题或请求我们经常需要数据库的一个或多个表中查询某些特别的信息,查询的结果以数据集(recordset)的方式返

5、回下面是对persons表的一个查询SELECT xm FROM persons该查询将返回如下结果,2023/6/23,10,MySQL的应用,MySQL的特点之一就是它可以小型化以支持嵌入式数据库应用也许是由于这个特点,许多人认为MySQL只能用在中小规模的系统中而事实表明,MySQL是存储巨大量的数据和用户信息的Web网站的事实上的标准数据库(de-facto standard database)像Yahoo,Google等网站都使用了MySQL数据库,2023/6/23,11,在PHP中连接MySQL数据库,在访问数据库之前,你必须首先建立到数据库的连接在PHP中,连接数据库使用mys

6、ql_connect()函数语法mysql_connect(servername,username,password);参数servername:可选,指定要连接的数据库名称,默认值是localhost:3306“username:可选,登录用户名,默认值是数据库服务器进程的拥有者password:可选,指定登录用户的口令,默认值是空串,2023/6/23,12,exit()和die()函数,PHP的exit()函数用于结束当前脚本并返回指定的消息语法exit(string status)结束当前脚本,返回指定的串消息exit(int status)结束当前脚本,返回0254间的状态值,0表示

7、程序成功执行完毕PHP的die()函数与exit()函数完全等价,2023/6/23,13,建立MySQL连接,在下面的示例(Connect.php)中,我们将数据库连接保存在$con变量中,如果连接失败,则执行die函数.,2023/6/23,14,建立MySQL连接,注意mysql_connect()函数成功执行时,返回数据库连接标识,若遇错误,则返回FALSE该示例最后的mysql_close()函数关闭数据库连接当数据库命令执行遇到错误时,可使用mysql_error()函数返回错误信息,2023/6/23,15,列出所有的数据库,MySQL的SHOW DATABASES命令可以返回当

8、前数据库系统中所有的数据库,字段名为Database在PHP中,使用mysql_query()函数可执行一个数据库语句,它能将一个数据库查询或命令发送给MySQL数据库,并返回结果集.如果遇到错误,则返回False示例(DBShow.php)$result=mysql_query(SHOW DATABASES,$con);echo 数据库名称 n;while($row=mysql_fetch_array($result)echo$rowDatabase.n;注意:SQL语句是不区分大小写的,2023/6/23,16,列出所有的数据库,使用mysql_fetch_array()返回$result

9、数据集中的当前行(开始时是第1行),并使下一行成为当前行返回的值$row是一个联想式数组,可以使用数据表中字段的名字引用当前行(即当前记录)中各个字段的值使用while循环可以遍历各个行到达数据集末尾时,$row取值为False,2023/6/23,17,创建数据库,创建数据库使用CREATE DATABASE命令,语法如下:CREATE DATABASE database_name示例(DBCreate.php)$db=my_db;if(mysql_query(CREATE DATABASE$db,$con)echo$db数据库已经创建;elseecho 不能创建$db数据库:.mysql_

10、error();注意可以在一个串内部直接使用变量名,为了使该变量名与周围的字符区分开,可以在其两侧加花括号,2023/6/23,18,删除数据库,使用DROP DATABASE命令可以删除一个数据库示例(DBDrop.php)$db=my_db1;if(mysql_query(DROP DATABASE$db,$con)echo$db数据库已经删除;elseecho 不能删除$db数据库:.mysql_error();,2023/6/23,19,创建表,使用CREATE TABLE命令可创建表,其语法如下:CREATE TABLE table_name(column_name1 data_ty

11、pe,column_name2 data_type,column_name3 data_type,.PRIMARY KEY(column_name1,.),2023/6/23,20,创建表示例,以下示例(TableCreate.php)应在前面创建my_db数据库的基础上进行mysql_select_db(my_db,$con);$sql=CREATE TABLE persons(bh varchar(4)NOT NULL,PRIMARY KEY(bh),xm varchar(4),Age int);mysql_query($sql,$con);mysql_select_db()函数为指定的或

12、当前的连接标识设置当前的活动数据库,2023/6/23,21,主键,每一个表都应该有主键主键用于唯一地标识表中的一行每个主键值在表中必须是唯一的主键值不能为空,否则无法依其标识一条记录主键字段是索引的这一点没有例外索引使得数据库可以快速地根据主键的值找到相应的记录,2023/6/23,22,创建表示例,以下(TableAutoInc.php)给出使用AUTO_INCREMENT(自增型字段)的示例$sql=CREATE TABLE persona(personID int NOT NULL AUTO_INCREMENT,PRIMARY KEY(personID),bh varchar(4),x

13、m varchar(4),Age int);mysql_query($sql,$con);使用自增型字段为数据表提供具有唯一性的主键字段是表设计中经常使用的一种方法,2023/6/23,23,数值数据类型,2023/6/23,24,文本数据类型,2023/6/23,25,文本数据类型,2023/6/23,26,日期时间类型,2023/6/23,27,其它数据类型,2023/6/23,28,列出数据库中全部的表,使用SHOW TABLES命令可以列出当前数据库中所有的表示例(TableShow.php)$db=my_db;mysql_select_db($db,$con);$result=mys

14、ql_query(SHOW TABLES,$con);echo$db数据库中的表 n;while($row=mysql_fetch_array($result)print_r($row);echo;示例中使用了print_r函数打印记录数组,可以看出,该数组既可使用数值下标也可使用联想式下标引用其中的元素,2023/6/23,29,列出一个表中全部的字段,使用SHOW COLUMNS FROM 表名命令可以列出一个表中全部的字段示例(ColumnShow.php)$tab=persons;$result=mysql_query(SHOW COLUMNS FROM$tab,$con);echo$

15、tab数据表中的字段(列)n;while($row=mysql_fetch_assoc($result)print_r($row);echo;示例中使用了mysql_fetch_assoc()函数将当前记录保存到一个联想式数组中,同理mysql_fetch_row()函数将当前记录保存到一个数值索引的数组中,2023/6/23,30,删除一个表,使用DROP TABLE命令可以删除当前数据库中的一个表示例(TableDrop.php)$tab=persona;if(mysql_query(DROP TABLE$tab,$con)echo$tab数据库已经删除;elseecho 不能删除$tab

16、数据库:.mysql_error();,2023/6/23,31,向数据表中插入数据,使用INSERT INTO语句可以向数据表中插入数据语法一INSERT INTO table_nameVALUES(value1,value2,.)语法二INSERT INTO table_name(column1,column2,.)VALUES(value1,value2,.),2023/6/23,32,插入数据,示例(InsertData.php)mysql_select_db(my_db,$con);mysql_query(INSERT INTO persons(bh,xm,age)VALUES(40

17、01,_gbk孙家瑞,30);mysql_query(INSERT INTO persons(bh,xm,age)VALUES(4002,_gbk王美,23);mysql_query(INSERT INTO persons(bh,xm)VALUES(4003,_gbk宋清河);注意在SQL语句中,在汉字字符串前使用_gbk引导符(introducer)可确保汉字在MySQL中正确地存储,2023/6/23,33,使用表单插入数据,下面是一个向数据库中插入记录的表单设计(InsertForm.htm)编号:姓名:年龄:当用户点击”提交”按钮时,表单数据被发送到InsertFormP.php,20

18、23/6/23,34,使用表单插入数据,InsertFormP.php使用PHP的$_POST接收表单数据,使用mysql_query()函数执行INSERT INTO语句,在数据表中增加一条新记录$sql=INSERT INTO persons(bh,xm,age)VALUES($_POSTbh,_gbk$_POSTxm,$_POSTage);mysql_query($sql,$con)注意PHP允许字符串变量出现在引号界定的字符串中以串变量方式提供的汉字串前面也需要加_gbk引导符,2023/6/23,35,SELECT语句,SELECT语句用于从数据表中查询数据语法SELECT colu

19、mn_name(s)FROM table_name示例(Select.php)mysql_query(SET NAMES utf8,$con);mysql_select_db(my_db,$con);$result=mysql_query(SELECT*FROM persons,$con);echo 查询结果如下;,2023/6/23,36,SELECT语句,示例(续)(Select.php)while($row=mysql_fetch_array($result)if(is_null($rowage)echo$rowbh.mb_convert_encoding($rowxm,gbk).NUL

20、L.n;elseecho$rowbh.mb_convert_encoding($rowxm,gbk).$rowage.n;注意示例中使用了is_null()函数判断一个变量的值是否为NULL,2023/6/23,37,SELECT语句,注意需要使用mysql_query(SET NAMES utf8,$con)语句设置连接标识符的字符集为utf8,才能使SELECT返回正确的汉字编码查询得到的汉字串需要使用mb_convert_encoding($rowxm,gbk)转换才能在返回的网页上正常显示,2023/6/23,38,使用WHERE子句,WHERE子句为SELECT语句指定条件语法SEL

21、ECT column FROM tableWHERE column operator value 示例(SelectWhere.php)$result=mysql_query(SELECT*FROM personsWHERE xm LIKE _gbk孙%);while($row=mysql_fetch_array($result)echo$rowbh.mb_convert_encoding($rowxm,gbk).;注意WHERE条件中用到的汉字串前同样需要加_gbk引导符,2023/6/23,39,WHERE子句中的运算符,2023/6/23,40,使用ORDER BY子句,使用ORDER

22、BY子句可以对SELECT的查询结果进行排序语法SELECT column_name(s)FROM table_nameORDER BY column_name,2023/6/23,41,使用ORDER BY子句,示例(SelectOrderBy.php)mysql_query(SET NAMES utf8,$con);mysql_select_db(my_db,$con);$result=mysql_query(SELECT*FROM persons ORDER BY age);echo;echo;注意示例中使用了HTML标签使printf的用空格对齐的输出格式在网页上有效,这时我们不再需要

23、使用br标签断行.,2023/6/23,42,使用ORDER BY子句,示例(续)(SelectOrderBy.php)while($row=mysql_fetch_array($result)if(is_null($rowage)printf(%-5s%-8s NULLn,$rowbh,mb_convert_encoding($rowxm,gbk);elseprintf(%-5s%-8s%5dn,$rowbh,mb_convert_encoding($rowxm,gbk),$rowage);,2023/6/23,43,使用ORDER BY子句,排序方式:ORDER BY默认的排序方式是升序,

24、使用DESC选项可以按降序排列查询结果SELECT column_name(s)FROM table_nameORDER BY column_name DESC也可以使用ORDER BY对多个字段排序SELECT column_name(s)FROM table_nameORDER BY column_name1,column_name2,2023/6/23,44,将查询的数据显示在HTML表格中,仔细输出,等标签,就可使查询的数据输出到期望的表格中(SelectTable.php)$result=mysql_query(SELECT*FROM persons);echo 编号姓名年龄;ech

25、o;,2023/6/23,45,将查询的数据显示在HTML表格中,仔细输出,等标签,就可使查询的数据输出到期望的表格中(SelectTable.php)while($row=mysql_fetch_assoc($result)echo;echo.$rowbh.;echo.mb_convert_encoding($rowxm,gbk).;if(is_null($rowage)echo NULL;elseecho.$rowage.;echo;,2023/6/23,46,更新数据语句UPDATE,使用UPDATE语句可以更新数据表中的记录语法UPDATE table_nameSET column_n

26、ame=new_valueWHERE column_name=some_value 示例(Update.php)mysql_query(UPDATE persons SET age=37 WHERE bh=4001);,2023/6/23,47,删除数据语句DELETE FROM,DELETE FROM语句用于删除数据表中的记录语法DELETE FROM table_nameWHERE column_name=some_value示例(DeleteFrom.php)mysql_query(DELETE FROM persons WHERE bh=4001);$cnt=mysql_affecte

27、d_rows($con);echo$cnt.条记录被删除.;注意使用cnt=mysql_affected_rows()函数可以返回前一个操作所影响的记录数,2023/6/23,48,小测验,PHP代表:Private Home Page Personal Home Page PHP:Hypertext Preprocessor Personal Hypertext Processor PHP服务器端脚本程序需要包括在:.,2023/6/23,49,小测验,PHP中输出“Hello World”的程序语句是:Document.Write(Hello World);Hello World;echo

28、 Hello World;PHP中的所有变量都必须以什么符号开始?$&!,2023/6/23,50,小测验,PHP语句必须以什么符号结束?;.换行符PHP语法与什么语言最相似?JavaScript VBScript Perl 和 C,2023/6/23,51,小测验,如何获得由http的”get”命令提交的信息?Request.QueryString;Request.Form;$_GET;当使用http的”post”命令时,变量会显示在URL中.False True,2023/6/23,52,小测验,在PHP中,既可用单引号作为字符串的界定符,也可使用双引号作为字符串的界定符.FalseTru

29、e被包含(include)的文件必须有”.inc”扩展名.False True,2023/6/23,53,小测验,包含文件”time.inc”的正确方法是:在PHP中编写函数的正确方法是:create myFunction()function myFunction()new_function myFunction(),2023/6/23,54,小测验,以只读方式打开文件”time.txt”的正确方法是:open(time.txt);fopen(time.txt,r);open(time.txt,read);fopen(time.txt,r+);PHP允许直接使用脚本程序发送emailTrueF

30、alse,2023/6/23,55,小测验,连接MySQL的正确方法是:dbopen(localhost);mysql_connect(localhost);connect_mysql(localhost);mysql_open(localhost);使$count变量增1的语句是:$count=+1+count$count+;count+;,2023/6/23,56,小测验,在PHP中书写注释的正确方法是:*.*/*/PHP可以在Microsoft Windows的IIS上运行FalseTrue,2023/6/23,57,小测验,PHP 5的默认配置中支持MySQL:FalseTrue下列的变量名不合法的是:$my_Var$my-Var$myVar,2023/6/23,58,The End,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号