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

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

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

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

2、新数据语句UPDATE删除数据语句DELETE FROM小测验,2023/6/23,5,什么是MSSQL?,MSSQL Server是微软开发的数据库系统MSSQL Server 2000版本已经被广泛地使用它的最新版本是MSSQL Server 2005其中一个免费的版本是MSSQL Server 2005 Express数据库定义了存储信息的结构数据库包括一些表简单地说,这些表就如同HTML中的表格,由行、列和数据单元组成数据库对于分类的存储信息尤其有用一个企业可能会有如下一些数据库表:职员表(Employees),产品表(Products),客户表(Customers)和订单表(Orde

3、rs)等,2023/6/23,6,MSSQL的特点,MSSQL Server具有许多特点,在此从实用性的方面说明它所具备的特点MSSQL Server是Windows上的数据库系统,微软将其与Windows系统进行了紧密的集成所提供的企业管理器功能强大,以图形用户界面管理数据库系统所提供的查询分析器易学易用,是使用SQL语言操作MSSQL数据库的绝好工具所提供的Transact-SQL对SQL语言进行了有效的扩充,使其功能强大、易学易用且具有过程化程序设计的能力所提供的系统存储过程和函数非常丰富所提供的在线帮助非常全面,在极大地方便初学者的同时,也为专业数据库设计与管理人员提供了得力的帮助,2

4、023/6/23,7,LAMP,LAMP(Linux+Apache+MySQL+PHP)被称为是建设网站的黄金组合这个组合中的系统全部是开源的,即不需要花一分钱,也不必担心介入正版软件费用和版权之争中Apache是一个运行效率和可靠性、安全性都非常高的Web服务器系统MySQL与PHP两个系统互相提供了功能、效率、易用等方面的支持,同时它们又对Apache系统提供了特别的支持,2023/6/23,8,WAMP,WAMP指的是Winodws+Apache+MySQL+PHP鉴于Windows系统巨大的用户占有量,Apache、MySQL和PHP系统都实现了到Windows系统的移植WAMP既可以

5、充分发挥Windows系统易于操作的特点,又可以利用Apache、MySQL和PHP系统的零投入、高效率、高可靠性和高安全性等特点PHP对MS SQL Server提供了很好的支持我们也可以使用Winodws+Apache+MSSQL+PHP建站遗憾的是,这个组合没有被称为WAMPPHP也可以运行在IIS Web服务器上我们还可以使用Winodws+IIS+MSSQL+PHP建站,2023/6/23,9,数据库中的表,数据库中的每个表都有一个名字(如:Customers或Orders),每个表包括一些数据记录(或称为行)下面是一个表persons的示例,2023/6/23,10,查询(Quer

6、y),查询是一个问题或请求我们经常需要数据库的一个或多个表中查询某些特别的信息,查询的结果以数据集(recordset)的方式返回下面是对persons表的一个查询SELECT xm FROM persons该查询将返回如下结果,2023/6/23,11,在PHP中连接MSSQL数据库,在访问数据库之前,你必须首先建立到数据库的连接在PHP中,连接数据库使用mssql_connect()函数语法mssql_connect(servername,username,password);参数servername:可选,指定要连接的数据库名称,默认值是localhost:1433“username:可

7、选,登录用户名,默认值是数据库服务器进程的拥有者password:可选,指定登录用户的口令,默认值是空串,2023/6/23,12,exit()和die()函数,PHP的exit()函数用于结束当前脚本并返回指定的消息语法exit(string status)结束当前脚本,返回指定的串消息exit(int status)结束当前脚本,返回0254间的状态值,0表示程序成功执行完毕PHP的die()函数与exit()函数完全等价,2023/6/23,13,建立MSSQL连接,在下面的示例(Connect.php)中,我们将数据库连接保存在$con变量中,如果连接失败,则执行die函数.,2023

8、/6/23,14,建立MSSQL连接,注意mssql_connect()函数成功执行时,返回数据库连接标识,若遇错误,则返回FALSE该示例最后的mssql_close()函数关闭数据库连接当数据库命令执行遇到错误时,网页上将返回错误信息,2023/6/23,15,列出所有的数据库,MSSQL的sp_databases系统存储过程可以返回当前数据库系统中所有的数据库在PHP中,使用mssql_query()函数可执行一个数据库语句,它能将一个数据库查询或命令发送给MSSQL数据库,并返回结果集.如果遇到错误,则返回False示例(DBShow.php)$result=mssql_query(s

9、p_databases,$con);echo 数据库名称(大小)n;while($row=mssql_fetch_array($result)echo$rowDATABASE_NAME.(.$rowDATABASE_SIZE.KB)n;注意:SQL语句是不区分大小写的,2023/6/23,16,列出所有的数据库,使用mssql_fetch_array()返回$result数据集中的当前行(开始时是第1行),并使下一行成为当前行返回的值$row是一个联想式数组,可以使用数据表中字段的名字引用当前行(即当前记录)中各个字段的值使用while循环可以遍历各个行到达数据集末尾时,$row取值为Fals

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

11、ssql_query(DROP DATABASE$db,$con)echo$db数据库已经删除;elseecho 不能删除$db数据库;,2023/6/23,19,创建表,使用CREATE TABLE命令可创建表,其语法如下:CREATE TABLE table_name(column_name1 data_type,column_name2 data_type,column_name3 data_type,.PRIMARY KEY(column_name1,.),2023/6/23,20,创建表示例,以下示例(TableCreate.php)应在前面创建my_db数据库的基础上进行mssql

12、_select_db(my_db,$con);$tab=persons;$sql=CREATE TABLE$tab(bh varchar(4)NOT NULL PRIMARY KEY,xm varchar(8),age int NULL);mssql_query($sql,$con);mssql_select_db()函数为指定的或当前的连接标识设置当前的活动数据库,2023/6/23,21,主键,每一个表都应该有主键主键用于唯一地标识表中的一行每个主键值在表中必须是唯一的主键值不能为空,否则无法依其标识一条记录主键字段是索引的这一点没有例外索引使得数据库可以快速地根据主键的值找到相应的记录,

13、2023/6/23,22,创建表示例,以下(TableAutoInc.php)给出使用identity(自增型字段)的示例$tab=persona;$sql=CREATE TABLE$tab(personID int NOT NULL IDENTITY(1,1)PRIMARY KEY,bh varchar(4),xm varchar(4),Age int);mssql_query($sql,$con);使用自增型字段为数据表提供具有唯一性的主键字段是表设计中经常使用的一种方法,2023/6/23,23,列出数据库中全部的表,使用sp_tables系统存储过程可以列出当前数据库中所有的表示例(T

14、ableShow.php)$db=my_db;mssql_select_db($db,$con);$result=mssql_query(SP_TABLES,$con);echo$db数据库中的表 n;while($row=mssql_fetch_array($result)print_r($row);echo;示例中使用了print_r函数打印记录数组,可以看出,该数组既可使用数值下标也可使用联想式下标引用其中的元素,2023/6/23,24,列出数据库中全部的表,从上面的例子可以看出sp_tables系统存储过程返回许多列信息,下面的示例说明如何返回指定的列(TableShowA.php)

15、while($row=mssql_fetch_array($result)echo$rowTABLE_NAME.(.$rowTABLE_TYPE.)n;sp_tables系统存储过程默认返回数据库中全部的“表”类对象,包括系统表、用户表和视图等,下面的示例(TableShowB.php)说明了如何返回用户表$result=mssql_query(SP_TABLES table_type=TABLE,$con);echo$db数据库中的用户表 n;while($row=mssql_fetch_array($result)echo$rowTABLE_NAME.n;,2023/6/23,25,列出一

16、个表中全部的字段,使用SP_COLUMNS系统存储过程可以列出一个表中全部的字段示例(ColumnShow.php)$tab=persons;$result=mssql_query(SP_COLUMNS table_name=$tab,$con);echo$tab数据表中的字段(列)n;while($row=mssql_fetch_assoc($result)echo$rowCOLUMN_NAME.(.$rowTYPE_NAME.,.$rowLENGTH.)n;示例中使用了mssql_fetch_assoc()函数将当前记录保存到一个联想式数组中,同理mssql_fetch_row()函数将当

17、前记录保存到一个数值索引的数组中,2023/6/23,26,删除一个表,使用DROP TABLE命令可以删除当前数据库中的一个表示例(TableDrop.php)$tab=persona;if(mssql_query(DROP TABLE$tab,$con)echo$tab数据库已经删除;elseecho 不能删除$tab数据库;,2023/6/23,27,向数据表中插入数据,使用INSERT INTO语句可以向数据表中插入数据语法一INSERT INTO table_nameVALUES(value1,value2,.)语法二INSERT INTO table_name(column1,co

18、lumn2,.)VALUES(value1,value2,.),2023/6/23,28,插入数据,示例(InsertData.php)mssql_select_db(my_db,$con);mssql_query(INSERT INTO persons(bh,xm,age)VALUES(4001,孙家瑞,30);mssql_query(INSERT INTO persons(bh,xm,age)VALUES(4002,王美,23);mssql_query(INSERT INTO persons(bh,xm)VALUES(4003,宋清河);,2023/6/23,29,使用表单插入数据,下面是

19、一个向数据库中插入记录的表单设计(InsertForm.htm)编号:姓名:年龄:当用户点击”提交”按钮时,表单数据被发送到InsertFormP.php,2023/6/23,30,使用表单插入数据,InsertFormP.php使用PHP的$_POST接收表单数据,使用mssql_query()函数执行INSERT INTO语句,在数据表中增加一条新记录$sql=INSERT INTO persons(bh,xm,age)VALUES($_POSTbh,$_POSTxm,$_POSTage);mssql_query($sql,$con)注意PHP允许字符串变量出现在引号界定的字符串中,202

20、3/6/23,31,SELECT语句,SELECT语句用于从数据表中查询数据语法SELECT column_name(s)FROM table_name示例(Select.php)mssql_select_db(my_db,$con);$result=mssql_query(SELECT*FROM persons,$con);echo 查询结果如下;,2023/6/23,32,SELECT语句,示例(续)(Select.php)while($row=mssql_fetch_array($result)if(is_null($rowage)echo$rowbh.$rowxm.NULL.n;els

21、eecho$rowbh.$rowxm.$rowage.n;注意示例中使用了is_null()函数判断一个变量的值是否为NULL,2023/6/23,33,使用WHERE子句,WHERE子句为SELECT语句指定条件语法SELECT column FROM tableWHERE column operator value 示例(SelectWhere.php)$result=mssql_query(SELECT*FROM persons WHERE xm LIKE 孙%);while($row=mssql_fetch_array($result)echo$rowbh.$rowxm.;,2023/

22、6/23,34,WHERE子句中的运算符,2023/6/23,35,使用ORDER BY子句,使用ORDER BY子句可以对SELECT的查询结果进行排序语法SELECT column_name(s)FROM table_nameORDER BY column_name,2023/6/23,36,使用ORDER BY子句,示例(SelectOrderBy.php)mssql_select_db(my_db,$con);$result=mssql_query(SELECT*FROM persons ORDER BY age);echo;echo;注意示例中使用了HTML标签使printf的用空格

23、对齐的输出格式在网页上有效,这时我们不再需要使用br标签断行.,2023/6/23,37,使用ORDER BY子句,示例(续)(SelectOrderBy.php)while($row=mssql_fetch_array($result)if(is_null($rowage)printf(%-5s%-8s NULLn,$rowbh,$rowxm);elseprintf(%-5s%-8s%5dn,$rowbh,$rowxm,$rowage);,2023/6/23,38,使用ORDER BY子句,排序方式:ORDER BY默认的排序方式是升序,使用DESC选项可以按降序排列查询结果SELECT c

24、olumn_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,39,将查询的数据显示在HTML表格中,仔细输出,等标签,就可使查询的数据输出到期望的表格中(SelectTable.php)$result=mssql_query(SELECT*FROM persons);echo 编号姓名年龄;echo;,2023/6/23,40,将查询的数据显示在HT

25、ML表格中,仔细输出,等标签,就可使查询的数据输出到期望的表格中(SelectTable.php)while($row=mssql_fetch_assoc($result)echo;echo.$rowbh.;echo.$rowxm.;if(is_null($rowage)echo NULL;elseecho.$rowage.;echo n;,2023/6/23,41,更新数据语句UPDATE,使用UPDATE语句可以更新数据表中的记录语法UPDATE table_nameSET column_name=new_valueWHERE column_name=some_value 示例(Updat

26、e.php)mssql_query(UPDATE persons SET age=37 WHERE bh=4001);,2023/6/23,42,删除数据语句DELETE FROM,DELETE FROM语句用于删除数据表中的记录语法DELETE FROM table_nameWHERE column_name=some_value示例(DeleteFrom.php)mssql_query(DELETE FROM persons WHERE bh=4001);$cnt=mssql_affected_rows($con);echo$cnt.条记录被删除.;注意使用cnt=mssql_affect

27、ed_rows()函数可以返回前一个操作所影响的记录数,2023/6/23,43,小测验,PHP代表:Private Home Page Personal Home Page PHP:Hypertext Preprocessor Personal Hypertext Processor PHP服务器端脚本程序需要包括在:.,2023/6/23,44,小测验,PHP中输出“Hello World”的程序语句是:Document.Write(Hello World);Hello World;echo Hello World;PHP中的所有变量都必须以什么符号开始?$&!,2023/6/23,45,

28、小测验,PHP语句必须以什么符号结束?;.换行符PHP语法与什么语言最相似?JavaScript VBScript Perl 和 C,2023/6/23,46,小测验,如何获得由http的”get”命令提交的信息?Request.QueryString;Request.Form;$_GET;当使用http的”post”命令时,变量会显示在URL中.False True,2023/6/23,47,小测验,在PHP中,既可用单引号作为字符串的界定符,也可使用双引号作为字符串的界定符.FalseTrue被包含(include)的文件必须有”.inc”扩展名.False True,2023/6/23,

29、48,小测验,包含文件”time.inc”的正确方法是:在PHP中编写函数的正确方法是:create myFunction()function myFunction()new_function myFunction(),2023/6/23,49,小测验,以只读方式打开文件”time.txt”的正确方法是:open(time.txt);fopen(time.txt,r);open(time.txt,read);fopen(time.txt,r+);PHP允许直接使用脚本程序发送emailTrueFalse,2023/6/23,50,小测验,连接MSSQL的正确方法是:dbopen(localho

30、st);mssql_connect(localhost);connect_mssql(localhost);mssql_open(localhost);使$count变量增1的语句是:$count=+1+count$count+;count+;,2023/6/23,51,小测验,在PHP中书写注释的正确方法是:*.*/*/PHP可以在Microsoft Windows的IIS上运行FalseTrue,2023/6/23,52,小测验,PHP 5的默认配置中支持MSSQL:FalseTrue下列的变量名不合法的是:$my_Var$my-Var$myVar,2023/6/23,53,The End,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号