一、导学
学习目标及重难点:
《 动态网页设计与制作 》专业课程教学设计模板
课程名称 | 动态网页设计与制作 | 任课教师 | 韩多成 | |||
授课日期 | 年 月 日 | 年 月 日 | 年 月 日 | 年 月 日 | ||
授课班级 | ||||||
授课地点 | ||||||
教研室主任审核意见 |
签名: 年 月 日 | |||||
题 目 | PHP操作MYSQL数据库 | |||||
学习目标 | 知识目标 | 1.连接MYSQL服务器 2.选择数据库 3.执行SQL语句
| ||||
技能目标 | 1.掌握连接MYSQL服务器 3.学会选择数据库 4.理解执行SQL语句 | |||||
素质目标 | 培养学生的团队精神和成功意识,增强学生学习的自信心,形成主动学习的良好氛围。 | |||||
教学重点
| 内 容 | 1.连接与关闭MySQL数据库 2.执行SQL语句 | ||||
突破方法与手段 |
讲授法,探索教学,讨论法,练习法
| |||||
教学难点 | 内 容 | 1.连接与关闭MySQL数据库 2.执行SQL语句 | ||||
突破方法与手段 | 讲授法,探索教学,讨论法,练习法 | |||||
教学资源 |
多媒体机房、ppt课件、配套资源、教案、教材 | |||||
二、教学过程:
1、观看微视频:连接MySQL数据库
掌握使用mysqli_connect函数连接MySQL数据库的应用,理解并正确设置函数中各个参数
2、掌握连接MySQL数据库函数的应用,输入并调试对应的程序代码
3、观看微视频:选择MySQL数据库
掌握使用mysqli_select_db函数选择MySQL数据库的应用,理解并正确设置函数中各个参数
4、掌握选择MySQL数据库函数的应用,输入并调试对应的程序代码
5、观看微视频:释放内存
了解释放内存函数的应用场景
6、观看微视频:关闭连接
了解关闭连接的应用场景
7、整理笔记、完成本节课测试作业。
三、教学资料:
教案:
《 动态网页设计与制作 》专业课程教学设计模板
课程名称 | 动态网页设计与制作 | 任课教师 | 韩多成 | |||
授课日期 | 年 月 日 | 年 月 日 | 年 月 日 | 年 月 日 | ||
授课班级 | ||||||
授课地点 | ||||||
教研室主任审核意见 |
签名: 年 月 日 | |||||
题 目 | PHP操作MYSQL数据库 | |||||
学习目标 | 知识目标 | 1.连接MYSQL服务器 2.选择数据库 3.执行SQL语句
| ||||
技能目标 | 1.掌握连接MYSQL服务器 3.学会选择数据库 4.理解执行SQL语句 | |||||
素质目标 | 培养学生的团队精神和成功意识,增强学生学习的自信心,形成主动学习的良好氛围。 | |||||
教学重点
| 内 容 | 1.连接与关闭MySQL数据库 2.执行SQL语句 | ||||
突破方法与手段 |
讲授法,探索教学,讨论法,练习法
| |||||
教学难点 | 内 容 | 1.连接与关闭MySQL数据库 2.执行SQL语句 | ||||
突破方法与手段 | 讲授法,探索教学,讨论法,练习法 | |||||
教学资源 |
多媒体机房、ppt课件、配套资源、教案、教材 | |||||
教学过程设计 | ||
教学环节 (用时) | 内容设计 | |
情景引入 | 教学内容 | 点名,复习上节课内容及总结作业,引入本节课所要讲解内容。 从表单获取的数据要想长期保存,需要写入数据库中。 【引入】使用PHP将数据写入数据库,需要先连接数据库,本项目主要学习如何连接数据库,并执行SQL语句。 |
教师活动 | 点名,回顾上节课学习内容,引入本节课学习内容 | |
学生活动 | 回顾上节课内容,了解本节课学习内容 | |
设计意图 | 通过温故知新,引入本节课学习内容 | |
新课讲授 | 教学内容 |
3、PHP操作MYSQL的基本步骤 1)连接MYSQL服务器 mysqli_connect()函数用于建立PHP程序与MYSQL服务器之间的连接,这是web页面与数据库之间进行数据交互的基础。其语法格式如下: Mysqli_connect(‘MYSQL_server’,’u_name’,’password’); “mysql_server”指明所要连接的MYSQL服务器,它的值可以是该服务器的主机名,也可以是IP地址,本地测试服务器使用“localhost”或“127.0.0.1”; “u_name”是指登录MYSQL数据库服务器的用户名; “password”是指数据库服务器的用户密码。两者都是必填参数。 如果连接成功,函数返回一个连接号,相当于程序所在的WEB页面与MYSQL数据库之间形成了一条数据通道,若连接失败,则返回false以及错误提示。 例: $dbs="localhost"; $db_user="root"; $db_pw="root"; $conn=mysql_connect($dbs,$db_user,$db_pw); 2)选择数据库 mysqli_select_db()函数用于选择所要操作的数据库,其语法格式如下: mysqli_select_db($db_name,$connect_id) 其中,$db_name,用于指明所要操作的数据库名,必填参数; $connect_id为必填参数,使用一个当前已经用mysql_connect打开的数据库连接号。 如果操作成功,函数返回true,否则返回false。 例: $dbs="localhost"; $duser="root"; $dpw="root"; $dname="guestbook"; $conn=mysql_connect($dbs,$dbu,$dbp); if(!$conn) die(“数据库服务器连接失败<br>”); else echo "数据库服务器连接成功<br>"; //打开数据库 $db_selected=mysql_select_db($dname); 3)执行SQL语句 3)执行SQL语句 在PHP中对数据库中的数据进行各种操作,主要是通过mysqli_query()函数,结合SQL语句实现。: mysqli_query(SQL_str,$connect_id); mysqli_query()函数是执行SQL语句的专用函数,所有的SQL语句都通过该函数执行。SQL_str参数指明要执行的SQL语句,$connect_id指用mysqli_connect()打开的数据库服务器连接号。 该函数的运行结果,与其所执行的SQL语句相关: 执行select语句,成功以后,返回SQL语句执行结果的数据集合(也称结果集或记录集),执行失败,返回false; 执行insert、update、delete等语句,成功以后,返回true,否则返回false。 例: $dbs="localhost"; $duser="root"; $dpw="root"; $dname="guestbook"; $conn=mysql_connect($dbs,$dbu,$dbp); $db_selected=mysql_select_db($dname); $sqls=“select * from s_info”; $rs=mysql_query($sqls,$conn); /* 数据集输出语句*/ mysql_close($conn); 4、MYSQL操作常用函数 在PHP操作MYSQL数据库的过程中,有几个函数,也常用到。分别是: mysql_num_rows() mysql_fetch_array() mysql_fetch_object() mysql_fetch_row() 以上函数都主要用于对记录集中的数据进行一些必要的转换与处理。 mysql_num_rows()函数用于统计select语句执行后产生的记录集中的记录数。 mysql_fetch_array()函数用于将查询结果集中的一行记录,转为数组。其语法格式如下: mysql_fetch_array($record_set [,$array_type]) $record_set是必填参数,用于指明所要转换的结果集; $array_type是可选参数,用于指明转换出来的数组类型是关联数组还是索引数组。其值如下: MYSQL_ASSOC:关联数组,以字段名为数组元素的键名,记录值为元素值; MYSQL_NUM :索外数组,按字段的顺序,分别以“0,1,2……”为键名; MYSQL_BOTH:默认值,同时产生关联和数字数组。 mysql_fetch_object()函数的作用与mysql_fetch_array()函数相似,用于转换查询结果集中的一行记录。不同的是,mysql_fetch_array()将记录转换为数组,而该函数将记录转化为一个对象,并且转化后的对象,只能通过字段名来访问记录中的值。 其语法格式如下: $object_name=mysql_fetch_object($record_set);//获取记录集并转换 $object_name->field_name;//访问转换后的字段值 mysql_fetch_row()函数的用法与mysql_fetch_array()函数的用法非常接近,也是获取记录集中的一行记录,并将其转换为数组,只不过它不能用字段名来访问每个数组元素,只能使用索引号来访问每个元素的值。具体用法可以参考mysql_fetch_array()函数。 5、数据的分页处理 在WEB程序中,如果对MYSQL数据库进行查询操作,返回的记录集中记录较多,在一个页面中一次性显示时,不仅导致网页的打开速度很慢,而且不便于用户对数据的浏览。这种情况下,通常将结果集分页显示。 PHP没有提供直接的分页功能函数,但MYSQL中支持limit分页查询,利用这个特点,可以实现数据的分页显示。 MYSQL的分页查询 在MYSQL中,select查询语句对记录进行查询操作时,可以限制每次提取的最大记录数,同时指定提取的起始点。其语法格式如下: select * from table_name limit start_flag , rows_num 该语句中,limit后面的两个参数start_flag与rows_num,分别表示查询的开始行与最多提取的记录行数。 这是对记录集进行分页一个非常重要的基础。假设查询的结果一共有30条,每次只查询提取10条的话,就相当于分成3页来提取显示了。其相应的语句如下: Select * from words limit 0,10; Select * from words limit 10,10; Select * from words limit 20,10; URL参数与页码传递 在记录数据分页显示的程序中,关于记录集一共有多少页的计算问题: 假设一共有20条记录,每页只显示6条记录,那么,一共就有20/6=3.33333页,即需要用4页来显示。可见,页数的计算公式是:向上取整(总记录数/每页记录数)。 在PHP中,利用ceil()函数,实现向上取整,返回一个不小于某小数的最小整数。 例如ceil(3.333)=4; ceil(3.0)=3; ceil(3.7)=4。 SQL语句中,当前页所查询的计算公式:select * from t_name limit (p-1)*n,rows 其中,p为当前页码,rows为每页显示的记录数 在记录数据分页显示的程序中,用户通过点击不同的页码,指向相应的页面进行记录浏览。 因此,通常将用户所点击的页码值,通过URL参数,传递给相应的页面,然后通过PHP程序指定给select语句中的limit参数。 6、对数据库的增删改查操作 查询数据库 创建文件dbconfig.php,保存常量 <?php define("HOST","localhost"); define("USER","root"); define("PASS","********"); define("DBNAME","news"); 1.2. 创建入口文件index.html(连接数据库、查询数据) <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>新闻后台管理系统</title></head><style type="text/css">.wrapper {width: 1000px;margin: 20px auto;}h2 {text-align: center;}.add {margin-bottom: 20px;}.add a {text-decoration: none;color: #fff;background-color: green;padding: 6px;border-radius: 5px;}td {text-align: center;}</style><body> <div> <h2>新闻后台管理系统</h2> <div> <a href="addnews.html">增加新闻</a> </div> <table width="960" border="1"> <tr> <th>ID</th> <th>标题</th> <th>关键字</th> <th>作者</th> <th>发布时间</th> <th>内容</th> <th>操作</th> </tr>
<?php // 1.导入配置文件 require "dbconfig.php"; // 2. 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!"); // 选择数据库 mysql_select_db(DBNAME,$link); // 编码设置 mysql_set_charset('utf8',$link);
// 3. 从DBNAME中查询到news数据库,返回数据库结果集,并按照addtime降序排列 $sql = 'select * from news order by id asc'; // 结果集 $result = mysql_query($sql,$link); // var_dump($result);die;
// 解析结果集,$row为新闻所有数据,$newsNum为新闻数目 $newsNum=mysql_num_rows($result);
for($i=0; $i<$newsNum; $i++){ $row = mysql_fetch_assoc($result); echo "<tr>"; echo "<td>{$row['id']}</td>"; echo "<td>{$row['title']}</td>"; echo "<td>{$row['keywords']}</td>"; echo "<td>{$row['autor']}</td>"; echo "<td>{$row['addtime']}</td>"; echo "<td>{$row['content']}</td>"; echo "<td> <a href='javascript:del({$row['id']})'>删除</a> <a href='editnews.php?id={$row['id']}'>修改</a> </td>"; echo "</tr>"; } // 5. 释放结果集 mysql_free_result($result); mysql_close($link); ?> </table> </div> <script type="text/javascript"> function del (id) { if (confirm("确定删除这条新闻吗?")){ window.location = "action-del.php?id="+id; } } </script></body></html> 增加新闻 点击增加按钮,通过页面addnews.html添加数据 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>添加新闻</title> </head><style type="text/css"> form{ margin: 20px; }</style><body><form action="action-addnews.php" method="post"> <label>标题:</label><input type="text" name="title"> <label>关键字:</label><input type="text" name="keywords"> <label>作者:</label><input type="text" name="autor"> <label>发布时间:</label><input type="date" name="addtime"> <label>内容:</label><input type="text" name="content"> <input type="submit" value="提交"> </form> </body> </html> 创建处理增加新闻的服务端文件action-addnews.php <?php// 处理增加操作的页面 require "dbconfig.php";// 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!");// 选择数据库 mysql_select_db(DBNAME,$link);// 编码设置 mysql_set_charset('utf8',$link); // 获取增加的新闻 $title = $_POST['title']; $keywords = $_POST['keywords']; $autor = $_POST['autor']; $addtime = $_POST['addtime']; $content = $_POST['content'];// 插入数据 mysql_query("INSERT INTO news(title,keywords,autor,addtime,content) VALUES ('$title','$keywords','$autor','$addtime','$content')",$link) or die('添加数据出错:'.mysql_error()); header("Location:demo.php"); 删除新闻 点击删除按钮,通过服务端文件action-del.php进行删除处理 <?php// 处理删除操作的页面 require "dbconfig.php";// 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!");// 选择数据库 mysql_select_db(DBNAME,$link);// 编码设置 mysql_set_charset('utf8',$link);
$id = $_GET['id'];//删除指定数据 mysql_query("DELETE FROM news WHERE id={$id}",$link) or die('删除数据出错:'.mysql_error()); // 删除完跳转到新闻页 header("Location:demo.php"); 修改新闻 点击修改按钮,跳转到文件editnews.php进行修改处理 <!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>修改新闻</title></head><body><?php require "dbconfig.php";
$link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!"); mysql_select_db(DBNAME,$link); mysql_set_charset('utf8',$link);
$id = $_GET['id']; $sql = mysql_query("SELECT * FROM news WHERE id=$id",$link); $sql_arr = mysql_fetch_assoc($sql); ?> <form action="action-editnews.php" method="post"> <label>新闻ID: </label><input type="text" name="id" value="<?php echo $sql_arr['id']?>"> <label>标题:</label><input type="text" name="title" value="<?php echo $sql_arr['title']?>"> <label>关键字:</label><input type="text" name="keywords" value="<?php echo $sql_arr['keywords']?>"> <label>作者:</label><input type="text" name="autor" value="<?php echo $sql_arr['autor']?>"> <label>发布时间:</label><input type="date" name="addtime" value="<?php echo $sql_arr['addtime']?>"> <label>内容:</label><input type="text" name="content" value="<?php echo $sql_arr['content']?>"> <input type="submit" value="提交"></form> </body></html> 通过服务端文件action-editnews.php进行修改处理 通过服务端文件action-editnews.php进行修改处理 <?php// 处理编辑操作的页面 require "dbconfig.php";// 连接mysql $link = @mysql_connect(HOST,USER,PASS) or die("提示:数据库连接失败!");// 选择数据库 mysql_select_db(DBNAME,$link);// 编码设置 mysql_set_charset('utf8',$link); // 获取修改的新闻 $id = $_POST['id']; $title = $_POST['title']; $keywords = $_POST['keywords']; $autor = $_POST['autor']; $addtime = $_POST['addtime']; $content = $_POST['content'];// 更新数据 mysql_query("UPDATE news SET title='$title',keywords='$keywords',autor='$autor',addtime='$addtime',content='$content' WHERE id=$id",$link) or die('修改数据出错:'.mysql_error()); header("Location:demo.php");
|
教师活动 | 使用各种教学方法,利用多媒体机房和教学课件,教学案例等教学资源, 对教学内容进行讲授 | |
学生活动 | 配合教学活动,学习相关知识。 | |
设计意图 | 讲授新知识,让学生学习本节课内容。 | |
实践练习 | 教学内容 | 实践练习 结合本节课所学内容,完成对应的操作练习题 |
教师活动 | 安排练习内容,辅导学生完成对应的操作练习 | |
学生活动 | 领取实践练习任务,按照要求完成相关操作 | |
设计意图 | 让学生能熟练掌握所学知识,通过实践练习进一步强化操作技能 | |
板书设计 | ||
作业布置 | 课后配套练习 | |
教学反思 | ||
教学课件:

