版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五单元
用户管理系统的设计课程内容01MySQL数据库基础知识02数据库和数据表的创建03常用数据库操作语句04通过MySQLi实现用户管理系统05设计和使用数据库操作函数目录
导入项目概述在现代Web开发实践中,无论是个人项目还是企业级应用,持续产生和处理海量数据已成为常态。高效地存储、管理并利用这些数据,已成为一项亟待解决的关键问题。尤其在Web开发领域,随着用户规模的增长和业务需求的日益复杂化,开发人员面临着如何快速、安全地处理用户数据的严峻挑战。数据库作为数据存储与检索的核心系统,能够实现数据的持久化存储,并提供高效的数据查询、添加、删除及修改功能。PHP作为一种广泛应用的服务器端脚本语言,提供了多种与数据库交互的途径。本单元将重点介绍使用MySQLi扩展访问和操作MySQL数据库的方法.
思维导图任务描述设计用于在线用户管理系统的数据库,该系统用于存储用户基本信息(如用户名、密码、电子邮箱等),并支持通过PHP实现数据的增删改查(CRUD)操作。任务5.1用户管理数据库的设计1.1MySQL数据库简介1.数据库基础知识数据库是依据特定数据结构进行组织、存储及管理数据的系统化仓库。在众多数据库类型中,关系型数据库采用二维表格形式实现数据存储,每个数据表均由行(记录)与列(字段)构成规范的数据单元。1.2MySQL数据库的特点1.数据库基础知识MySQL是一款开源关系型数据库管理系统(RDBMS),具备以下核心特性:开源免费、跨平台兼容性好、性能卓越、兼容标准SQL、安全机制完善、支持多存储引擎等。2.1启动MySQL服务2.MySQL服务的启动与停止打开XAMPPControlPannel,找到MySQL服务的图标,在控制面板中点击“MySQL”右侧的“Start”按钮,启动MySQL服务。2.2关闭MySQL服务2.数组分类打开XAMPP,在面板中找到MySQL服务的图标,如果MySQL服务正在运行,会显示一个“停止”按钮,点击“停止”按钮,MySQL服务将被关闭。3.1创建数据库3.数据库和数据表的创建启动并连接MySQL服务器后,就可以对MySQL数据库进行操作了,操作MySQL数据库主要包括创建、查看、选择、删除等。在Navicat中可以右击‘连接,选择新建数据库3.2创建数据表3.数据库和数据表的创建双击打开MySQL数据连接,右击“表”,在弹出菜单中选择“新建表”。3.2创建数据表3.数据库和数据表的创建在弹出的窗口中设计数据表的各字段,输入字段名和类型,并将id字段设置为主键,非空,同时默认中勾选上“自动递增”。保存表格为stu_tb,关闭当前设计窗口后,双击打开数据表stu_tb,可以输入表格中的数据。4.1插入数据格式是:INSERTINTO表名(字段1,字段2,...)VALUES(值1,值2,...);其中,“表名”指的是要插入数据的目标数据表名称,括号内的“字段1,字段2,字段3,...”是需要插入数据的具体字段列表,多个字段之间用逗号分隔。“VALUES”后面括号中的“值1,值2,值3,...”则是与前面字段一一对应的具体数据值,字符串类型的值需要用单引号括起来,数值类型的值可以直接书写,日期类型的值也通常需要用单引号括起来并按照特定格式书写,如'YYYY-MM-DD'。自增的列,如stu_tb中的id字段,不能写在字段列表中,其值也不用写在values中。示例:INSERTINTOstu_tb(name,score)VALUES('张三',140)4.常用数据库操作语句4.2修改(更新)数据格式:UPDATE表名SET字段1=值1,字段2=值2,...WHERE条件;“表名”指要更新数据的数据表名;“SET”用于指定需要修改的字段及对应的新值,多个字段之间用逗号分隔;“WHERE”子句用于限定更新的范围,只有满足条件的行才会被修改。注意:如果省略WHERE子句,会修改表中所有行的值,需特别小心。
例如:更新stu_tb表中id为1的学生的成绩为135,语句如下:
UPDATEstu_tbSETscore=135WHEREid=1;同时修改姓名和成绩,如将id为2的学生姓名改为'李四'、成绩改为138,语句为:
UPDATEstu_tbSETname='李四',score=138WHEREid=2;4.常用数据库操作语句4.3删除数据格式是:DELETEFROM表名WHERE条件;“表名”指要删除数据的数据表名称;“WHERE”子句用于限定删除的范围,只有满足条件的行才会被删除。注意:如果省略WHERE子句,会删除表中所有行,且不可恢复,要特别小心。
例如,要删除stu_tb表中id为3的学生记录,语句如下:
DELETEFROMstu_tbWHEREid=3;若要删除成绩低于60分的学生记录,语句为:
DELETEFROMstu_tbWHEREscore<60;4.常用数据库操作语句4.4查询语句基本格式为:
SELECT字段列表FROM表名[WHERE条件][ORDERBY字段
排序方式][LIMIT起始行,行数];(1)查询所有记录:SELECT*FROMstu_tb;(2)条件查询(WHERE子句)查询成绩大于120分的学生姓名和成绩:
SELECTname,scoreFROMstu_tbWHEREscore>120;查询姓名中包含“张”字且成绩在10到60之间的学生:
SELECT*FROMstu_tbWHEREnameLIKE'%张%'ANDscoreBETWEEN10AND60;查询不是“张三”的学生记录:SELECT*FROMstu_tbWHEREname!='张三';4.常用数据库操作语句4.4查询语句(3)排序查询(ORDERBY子句):按成绩降序排列(从高到低显示所有学生信息):SELECT*FROMstu_tbORDERBYscoreDESC;按姓名升序、成绩降序排列(先按姓名拼音排序,同姓名按成绩从高到低排列):SELECT*FROMstu_tbORDERBYnameASC,scoreDESC;(4)分页查询(LIMIT子句):用LIMIT子句实现分页。其格式为“LIMIT起始行,行数”(起始行从0开始,代表第一行)。例如:查询“stu_tb”表中前5条记录(第一页,每页5条):SELECT*FROMstu_tbLIMIT0,5;查询第6到第10条记录(第二页):SELECT*FROMstu_tbLIMIT5,5;4.常用数据库操作语句4.4查询语句4.常用数据库操作语句(5)聚合查询(聚合函数):聚合函数用于对数据进行统计分析,常见的聚合函数包括:COUNT(*):统计记录总数;SUM(字段):计算指定字段的总和;AVG(字段):计算指定字段的平均值;MAX(字段):获取指定字段的最大值;MIN(字段):获取指定字段的最小值。
例1:统计“stu_tb”表中的学生总数SELECTCOUNT(*)
AS
total_studentsFROMstu_tb;
例2:计算所有学生的平均成绩
SELECTAVG(score)ASavgGradeFROM
stu_tb;
任务实施任务5.1用户管理数据库的设计-任务实施设计用户表user_tb,如图5-6所示,注意其中id列设置为整型int类型,在下面的“默认”中设置为“自动递增”,同时设置为主键,其他用户名userName、密码password和邮箱email设置为可变长度varchar类型,并允许为空值null。
任务描述任务5.2通过MySQLi实现用户管理系统设计一个用户管理系统的数据库,该系统能够存储用户的基本信息,如用户名、密码、邮箱等,并能够通过PHP进行数据的增删改查操作。
知识准备MySQLi还是PDO方式?PHP中提供了多种操作MySQL数据库的方式,现在比较常用的是MySQLi和PDO方式,其中MySQLi只针对MySQL数据库,使用起来简单高效,但是如果你的项目需要在多种数据库中切换,建议使用PDO方式,PDO可以应用在12种不同数据库中,当变更数据库时只需要简单修改即可。本单元中先介绍使用MySQLi方式访问MySQL数据库,并采用面向过程方式。任务5.2通过MySQLi实现用户管理系统-知识准备1.mysqli_connect()连接数据库PHP通过mysqli_connect()函数连接MySQL服务器语法格式如下:mysqli_connect($servername,$username,$password);参数$servername是MySQL服务器的主机名(或IP),如果省略端口号,则默认为3306;参数$username是登录MySQL服务器的用户名,参数$password是MySQL服务器的用户密码。如果连接成功,则函数返回一个连接标识,失败则返回False。例如,使用mysqli_connect()函数连接本地MySQL服务器,代码如下:<?php$conn=mysqli_connect('localhost','root','')ordie("连接数据库服务器失败!",mysqli_connect_error());?>任务5.2通过MySQLi实现用户管理系统-知识准备1.mysqli_connect()连接数据库要连接到服务器上某个具体数据库,可以将连接服务器和打开数据库放在一段程序中。$host='localhost';$username='root';//访问数据库的用户名$password='';//访问数据库root用户的密码,此处为空字符串$database='mydb';//访问的数据库名$conn=mysqli_connect($host,$username,$password,$database);//创建连接if(!$conn){//检查连接是否成功die('连接失败:'.mysqli_connect_error());}echo'连接成功';mysqli_close($conn);任务5.2通过MySQLi实现用户管理系统-知识准备2.mysqli_query()函数执行SQL语句任务5.2通过MySQLi实现用户管理系统-知识准备通常使用mysqli_query()函数来执行对数据库操作的SQL语句。mysqli_query()函数的语法如下:mysqli_query($link,$query)参数$link是MySQL服务器的连接标识,参数$query是要执行的SQL语句,包括插入记录语句、修改记录语句、删除记录语句、查询记录语句等。用法示例:mysqli_query($conn,"INSERTINTOuser_tb(userName,password)VALUES('Tom','123')")1.设计用户管理系统界面任务5.2通过MySQLi实现用户管理系统-任务实施<center><h3>用户管理系统</h3><hr><ahref="5-2.php">1.插入用户</a><br><ahref="5-3.php">2.修改用户</a><br><ahref="5-4.php">3.删除用户</a><br><ahref="5-5.php">4.查询用户</a><br></center>
1.mysqli_query()实现插入记录任务5.2通过MySQLi实现用户管理系统-任务实施$conn=mysqli_connect("localhost","root","","mydb");//1.连接到服务器if(!$conn)die("连接失败:".mysqli_connect_error());//2.准备SQL$sql="INSERTINTOuser_tb(userName,password)VALUES('Tom','123')";if(mysqli_query($conn,$sql))//3.执行DQL语句echo"插入记录成功";//输出操作成功else//失败echo"插入记录失败";mysqli_close($conn);//4.关闭连接2.mysqli_query()实现修改记录任务5.2通过MySQLi实现用户管理系统-任务实施$conn=mysqli_connect("localhost","root","","mydb");//1.连接到服务器if(!$conn)die("连接失败:".mysqli_connect_error());//2.准备SQL$sql="UPDATEuser_tbSETpassword='456'WHEREusername='Tom'";if(mysqli_query($conn,$sql))//3.执行SQL语句
echo"修改用户信息成功";
//输出操作成功else//失败
echo"修改用户信息失败";mysqli_close($conn);3.mysqli_query()实现删除记录任务5.2通过MySQLi实现用户管理系统-任务实施$conn=mysqli_connect("localhost","root","","mydb");//1.连接到服务器if(!$conn)die("连接失败:".mysqli_connect_error());$sql="DELETEFROMuser_tbWHEREusername='Tom'";//2.准备SQLif(mysqli_query($conn,$sql))//3.执行SQL语句echo"删除记录成功";//输出操作成功else//失败echo"删除记录失败";mysqli_close($conn);插入、删除、修改这三个非查询语句,操作步骤基本一样,关键的差异是SQL语句4.mysqli_query()实现查询记录任务5.2通过MySQLi实现用户管理系统-任务实施数据查询与前面三条非查询语句相比存在一定差别,要将查询结果显示在页面中。$conn=mysqli_connect("localhost","root","","mydb");//1.连接到服务器if(!$conn)die("连接失败:".mysqli_connect_error());$sql="SELECTid,userName,passwordFROMuser_tb";//2.准备SQL语句$result=mysqli_query($conn,$sql);//3.执行SQL语句if(mysqli_num_rows($result)>0){//4.显示查询结果while($row=mysqli_fetch_assoc($result))echo$row["id"].",".$row["userName"].",".$row["password"]."<br>";}elseecho"未查询到相关记录";mysqli_close($conn);
1.数据库操作函数的设计任务5.3设计和使用数据库操作函数本任务设计几个函数,简化数据库增、删、查、改操作。在前面任务中大量的代码出现了重复,可以进行优化。通过定义函数的方式将重复代码和常用代码分别定义成不同的函数,并存放在一个文件public.php中,使用时将文件public.php包含进来,就可以直接使用这些函数,达到简化程序,减少重复代码的效果。
1.数据库操作函数的设计任务5.3设计和使用数据库操作函数header("Content-type:text/html;charset=utf-8");$conn=mysqli_connect('localhost','root','','mydb');//建立数据库连接if(!$conn)die('连接数据库失败'.mysqli_error($conn));//报错并退出当前程序mysqli_query($conn,'SETnamesutf8');//配置MySQL,指定字符集,防止乱码functionexeSQL($sql)//执行非查询语句(INSERT/UPDATE/DELETE),返回影响的行数{global$conn;if($result=mysqli_query($conn,$sql)){returnmysqli_affected_rows($conn);}else{die('SQL执行失败:'.$sql.'<br>错误信息:'.mysqli_error($conn));}}
1.数据库操作函数的设计任务5.3设计和使用数据库操作函数/***执行查询语句,返回关联数组格式的结果集*@paramstring$sql待执行的SELECT查询语句*@returnarray关联数组结果集*/functionexeQuery($sql){global$conn;$result=mysqli_query($conn,$sql);if(!$result){die('SQL执行失败:'.$sql.'<br>错误信息:'.mysqli_error($conn));}$data=[];while($row=mysqli_fetch_assoc($result))$data[]=$row;return$data;}
1.数据库操作函数的设计任务5.3设计和使用数据库操作函数/***执行聚合查询(COUNT/SUM/AVG/MAX/MIN)*@paramstring$sql待执行的聚合查询SQL语句*@returnmixed聚合结果数值或false*/functionexeAgg($sql){global$conn;$result=mysqli_query($conn,$sql);if(!$result)die('SQL执行失败:'.$sql.'<br>错误信息:'.mysqli_error($conn));$row=mysqli_fetch_row($result);return$row[0];}functioncloseConn()//关闭数据库连接{global$conn;mysqli_close($conn);}
1.数据库操作函数的设计任务5.3设计和使用数据库操作函数/***提示文字信息,并跳转到目标页面*@paramstring$msg警告信息*@paramstring$url跳转到的网页,默认为空*/functionalertRedirect($msg='',$url=''){$script='';//addslashes函数返回转义后的字符,用于避免SQL注入攻击if($msg)$script.="alert('".addslashes($msg)."');";//如果有提示信息,添加提示语句if($url)$script.="location.href='".addslashes($url)."';";//如果有跳转页面,添加跳转语句if($script)echo"<script>$script</script>";//如果有提示语句或跳转语句,输出脚本}?>2.数据库操作函数的使用任务5.3设计和使用数据库操作函数下面通过设计一个简单的用户管理系统体验一下如何使用该函数。<?phprequire('public.php');//包含文件public.php$sql="INSERTINTOuser_tb(userName,password)VALUES('Tom','123')";if(exeSQL($sql)>0)//调用exeSQL()函数alertRedirect("添加成功");elsealertRedirect("添加失败");closeConn();?>1.用户管理系统设计准备任务5.3设计和使用数据库操作函数-任务实施1.用户管理系统设计准备用户管理系统包括管理主界面,用户信息查询、用户添加、用户删除、用户信息修改,为简化程序,通过包含public.php文件实现网站用户管理系统。2.显示用户信息任务5.3设计和使用数据库操作函数-任务实施准备工作:新建样式表style.css,存放在项目的unit5文件夹下。*{text-align:center;}table{border:1pxsolid#ccc;border-collapse:collapse;width:500px;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学生管理中的心理学智慧一天1
- 国家质量管理体系标准
- 国际金融市场包括金市
- 围手术期抗菌药物合理应用96伍三兰
- 学习理论及其教学应用
- 印染废水处理的物理化学法
- 北京大学文科计算机常宝宝
- 同仁医院眼科疾病的护理
- 呼吸作用的概念和生理意义
- 危险化学品储存安全讲义
- GB/T 18462-2025激光加工机械金属切割的性能规范
- 2025年云上贵州大数据(集团)有限公司招聘笔试参考题库含答案解析
- 电路中电位的概念及计算(电工基础课件)
- DB51∕T 2512-2018 ACMP温拌改性沥青应用技术
- Unit-2-A-great-picture(课件)-二年级英语上学期(人教PEP版2024)
- 色盲检测图(俞自萍第五版)课件
- 色盲检测图(俞自萍第六版)
- 外科学 第四十二章肝疾病
- GB/T 3836.34-2021爆炸性环境第34部分:成套设备
- GB/T 28732-2012固体生物质燃料全硫测定方法
- 设计艺术学研究方法-第四章-课件
评论
0/150
提交评论