目录

  • 1 为什么要好好学习
    • 1.1 ​清华大学110校庆习近平讲话
    • 1.2 耶鲁校长2021开学演讲:当世界置身火海,读书意义何在?
    • 1.3 我和我的祖国
    • 1.4 江梦南:半岁失聪的清华女博士!
  • 2 项目一:网站分析与环境配置
    • 2.1 PHP简介
    • 2.2 PHP开发环境与工具
  • 3 项目二:生活中的数学问题
    • 3.1 常量与变量
    • 3.2 数据类型及类型转换
    • 3.3 运算符与优先级
    • 3.4 流程控制语句之顺序结构
    • 3.5 流程控制语句之分支结构
    • 3.6 流程控制语句之循环结构
    • 3.7 流程控制及结构嵌套
    • 3.8 拓展任务
  • 4 项目三:实现日历应用
    • 4.1 自定义函数及函数作用域
    • 4.2 数字操作函数
    • 4.3 日期时间函数
    • 4.4 实现日历应用
  • 5 项目四:图像验证码的实现
    • 5.1 数组的创建与初始化
    • 5.2 数组遍历和输出
    • 5.3 数组的排序及检索
    • 5.4 数组元素操作函数
    • 5.5 字符串处理函数
    • 5.6 字符串查找与替换
    • 5.7 字符串比较与转换
    • 5.8 项目拓展
  • 6 项目五:基于文件名的目录搜索
    • 6.1 目录操作
    • 6.2 文件操作
    • 6.3 拓展任务
  • 7 项目六:问卷调查系统
    • 7.1 (选学)表单及常用表单元素
    • 7.2 获取表单数据
    • 7.3 处理表单控件的值
    • 7.4 文件上传操作
    • 7.5 拓展任务:会员注册页面
  • 8 项目七:简单新闻系统的设计制作
    • 8.1 phpmyadim图形化工具管理数据库
    • 8.2 PHP访问MySQL数据库
    • 8.3 操作SQL数据
    • 8.4 简单新闻系统的设计制作
    • 8.5 拓展任务
  • 9 综合项目(选学内容)
    • 9.1 项目分析
    • 9.2 项目实践
PHP访问MySQL数据库

一、导学

学习目标及重难点:

《 动态网页设计与制作 》专业课程教学设计模板

课程名称

动态网页设计与制作

任课教师

韩多成

授课日期

年  月  日

年  月  日

年  月  日

年  月  日

授课班级





授课地点





教研室主任审核意见

 

签名:

                                   年   月   日

题 目

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语句

教师活动

点名,回顾上节课学习内容,引入本节课学习内容

学生活动

回顾上节课内容,了解本节课学习内容

设计意图

通过温故知新,引入本节课学习内容

新课讲授

教学内容

 

3PHP操作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

执行insertupdatedelete等语句,成功以后,返回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);

4MYSQL操作常用函数

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,,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_flagrows_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)*nrows

其中,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");  

 

教师活动

使用各种教学方法,利用多媒体机房和教学课件,教学案例等教学资源,

对教学内容进行讲授

学生活动

配合教学活动,学习相关知识。

设计意图

讲授新知识,让学生学习本节课内容。

实践练习

教学内容

实践练习

结合本节课所学内容,完成对应的操作练习题

教师活动

安排练习内容,辅导学生完成对应的操作练习

学生活动

领取实践练习任务,按照要求完成相关操作

设计意图

让学生能熟练掌握所学知识,通过实践练习进一步强化操作技能

板书设计


作业布置

课后配套练习

教学反思


 

教学课件: