第7章PDO数据库抽象层教学设计.docx

上传人:b****1 文档编号:14340057 上传时间:2023-06-22 格式:DOCX 页数:19 大小:290.48KB
下载 相关 举报
第7章PDO数据库抽象层教学设计.docx_第1页
第1页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第2页
第2页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第3页
第3页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第4页
第4页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第5页
第5页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第6页
第6页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第7页
第7页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第8页
第8页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第9页
第9页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第10页
第10页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第11页
第11页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第12页
第12页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第13页
第13页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第14页
第14页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第15页
第15页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第16页
第16页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第17页
第17页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第18页
第18页 / 共19页
第7章PDO数据库抽象层教学设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第7章PDO数据库抽象层教学设计.docx

《第7章PDO数据库抽象层教学设计.docx》由会员分享,可在线阅读,更多相关《第7章PDO数据库抽象层教学设计.docx(19页珍藏版)》请在冰点文库上搜索。

第7章PDO数据库抽象层教学设计.docx

第7章PDO数据库抽象层教学设计

 

传智播客

《PHP网站开发实例教程》

教学设计

 

课程名称:

PHP网站开发实例教程

授课年级:

2015年级

授课学期:

2015学年第二学期

教师姓名:

某某老师

 

201年月日

课题名称

第7章PDO数据库抽象层

计划课时

6课时

内容分析

PDO指的是PHP数据对象,即PHPDataObject的简称。

它通过一种轻型、便利的API来统一操作各种数据库,目前支持的数据库包括Firebird、FreeTDS、Interbase、MySQL、MSSQLServer、ODBC、Oracle、PostgreSQL、SQLite和Sybase。

有效的解决了早期PHP版本中不同数据库扩展接口互不兼容的问题。

接下来本章将针对PDO数据库抽象层的使用进行详细的讲解。

教学目标

●熟练掌握PDO方式连接和选择数据库、执行SQL语句和处理结果集;

●掌握参数绑定和占位符的使用,学会使用预处理语句批量处理数据;

●熟悉PDO错误处理机制,能够在程序开发过程中灵活运用错误处理;

重点及措施

教学重点:

PDO连接数据库、执行SQL语句、处理结果集、预处理语句。

措施:

通过上机操作加强学习和补充案例进行巩固。

难点及措施

教学难点:

PDO连接数据库、预处理语句、错误处理机制。

措施:

通过上机操作加强学习和补充案例进行巩固。

教学方式

教学采用教师课堂讲授为主,使用教学PPT讲解。

第一课时

(【案例35】PDO基本使用)

复习上节课内容

在讲解本节内容前,抛出以下问题让学生回答,以复习第六章“面向对象编程”的基础知识。

1、请简述面向对象的三大特征。

答案:

(1)封装性:

封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想。

(2)继承性:

继承性主要描述的是类与类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行扩展。

(3)多态性:

多态性指的是同一操作作用于不同的对象,会产生不同的执行结果。

2、请简述类与对象的关系。

答案:

类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。

类用于描述多个对象的共同特征,它是对象的模板。

对象用于描述现实中的个体,它是类的实例。

3、请简述PHP中的访问修饰限定符及其作用。

答案:

(1)public:

公有修饰符,类中的成员将没有访问限制,所有的外部成员都可以访问这个类的成员。

如果类的成员没有指定访问修饰符,则默认为public。

(2)protected:

保护成员修饰符,被修饰为protected的成员不能被该类的外部代码访问,但是对于该类的子类可以对其访问、读写等。

(3)private:

私有修饰符,被定义为private的成员,对于同一个类里的所有成员是可见的,即没有访问限制,但是在该类的外部以及该类的子类中是不允许访问私有成员的。

说明:

教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。

本课时内容学习

✧案例描述

PHP支持的数据库类型较多,但在早期的PHP版本中,各种不同的数据库扩展互不兼容,每个扩展都有各自的操作函数,导致PHP的维护非常困难,可移植性也非常差。

为了解决这一问题,PHP开发了PDO数据库抽象层,当选择不同数据库时,只需修改PDO中的DSN(数据源)即可。

接下来通过一个展示书籍列表的简单案例来讲解PDO的基本使用。

✧案例讲解

Ø案例分析

•创建书籍信息表,该表用于保存书籍的详细信息。

•向书籍信息表中添加数据,用于测试数据信息展示功能。

•使用PDO方式连接数据库、选择数据库、设定字符集。

•编写SQL语句,查询出书籍信息表中所有的信息。

•执行SQL语句,并处理结果集。

•创建视图文件,将处理后的书籍信息展示到页面中。

Ø案例实现

教师带领学生分步骤地进行操作,并指出其中需要注意的事项。

说明:

在案例讲解的过程中,教师可适时停下来,让学生自行尝试。

小组之间可以协作讨论,教师巡视,对疑难问题进行解答。

✧知识点讲解

Ø总结知识点

教师和学生一起总结在案例中涉及到的知识点,主要包括“PDO连接数据库”、“执行SQL语句”、“处理结果集”等。

Ø讲解“PDO连接数据库”

(1)、教师通过代码对“PDO连接数据库”进行演示。

在连接数据库时,需要注意的是DSN的设置,“驱动名:

host=主机名;port=端口号;dbname=选择的数据库名称;charset=字符集”。

(2)、教师展示PPT对实例化PDO类的构造方法的各参数进行讲解。

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“执行SQL语句”

(1)、教师通过代码对“执行SQL语句”进行演示说明。

(2)、教师展示PPT对“执行SQL语句”进行归纳总结。

●query()方法主要用于有记录结果返回的操作,特别是SELECT操作。

●exec()则主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“处理结果集”

(1)、教师通过对各“处理结果集”的函数进行演示说明。

●fetch()方法可以从结果集中获取下一行数据;

●fetchColumn()方法用于获取结果集中单独一列;

●fetchAll()方法可以获取结果集中所有的行;

(2)、教师展示PPT进行一步对“处理结果集”函数参数以及注意事项进行详细讲解。

(3)、学生练习,教师巡视,对疑难问题进行解答。

✧阶段小结

Ø小结

重点:

PDO连接数据库、执行SQL语句、处理结果集。

Ø答疑

教师询问学生对于知识点还有什么不理解的地方。

针对学生不理解的知识点给与解释。

✧巩固练习

Ø巩固“PDO基本使用”

学完知识点后,让学生再次练习“PDO基本使用”。

以此使学生更熟练地掌握“PDO连接数据库”、“执行SQL语句”、“处理结果集”等知识点的使用。

Ø通过“补充案例”加强学习

教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。

✧布置作业

Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。

Ø预习7.2节【案例36】预处理语句和7.3节【案例37】PDO错误处理机制。

Ø复习前面学过的知识点和案例,加强巩固。

第二课时

(【案例36】预处理语句、【案例37】PDO错误处理机制)

复习上节课内容

在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。

1、假设MySQL数据库安装在本地服务器上,数据库名称是data,数据库在默认端口上运行,用户名是root,密码是aa,数据库中有一个名为dept的表,表中有dname和loc两个字段,请用PDO取出dept表的所有记录。

答案:

1

php

2//设置DSN、用户名和密码

3$dsn='mysql:

host=127.0.0.1;port=3306;dbname=data;charset=utf8';

4$user='root';

5$pwd='aa';

6try{

7//连接数据库

8$pdo=newPDO($dsn,$user,$pwd);

9//执行SQL语句

10$rs=$pdo->query('select*fromdept');

11//处理结果集

12foreach($rsas$rows){

13echo$rows['dname'].'-'.$rows['loc'].'
';

14}

15}catch(PDOException$e){

16//输出异常信息

17echo$e->getMessage().'
';

18}

19?

>

说明:

教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。

本课时内容学习

【案例36】预处理语句

✧案例描述

PDO中有一种预处理语句机制,可以理解为SQL的一种编译过的模板,当需要以不同参数多次重复进行相同的查询时,使用预处理语句可以避免重复的分析、编译、优化周期,从而节省资源,提高运行效率。

同时,由于预处理语句实现了将SQL和数据的分离,因此可以防止SQL注入。

接下来演示PDO预处理语句的使用,向【案例35】中的books数据表一次插入多条数据。

✧案例讲解

Ø案例分析

•使用prepare()方法准备预处理的插入语句。

•利用bindParam()为预处理语句中的占位符绑定变量参数。

•使用execute()方法执行预处理语句。

•使用phpMyAdmin查看数据库,检查插入数据是否成功。

Ø案例实现

教师带领学生分步骤地进行操作,并指出其中需要注意的事项。

说明:

在案例讲解的过程中,教师可适时停下来,让学生自行尝试。

小组之间可以协作讨论,教师巡视,对疑难问题进行解答。

✧知识点讲解

Ø总结知识点

教师和学生一起总结在案例中涉及到的知识点,主要包括“prepare()方法”、“bindParam()方法”、“execute()方法”等。

Ø讲解“prepare()方法”

(1)、教师展示PPT对“prepare()方法”及参数进行讲解。

在预处理的SQL语句中可以使用占位符,而PDO支持两种占位符,即问号占位符(?

)和命名参数占位符(:

参数名称)。

例如:

insertinto`books`(`book_name`,`book_author`)values(?

?

);

insertinto`books`(`book_name`,`book_author`)values(:

name,:

author);

(2)、教师通过代码对“prepare()方法”的使用进行演示。

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“bindParam()方法”

(1)、教师对“bindParam()方法”的使用进行演示。

bindParam()方法可以将“变量参数”绑定到准备好的查询“占位符”上。

(2)、教师展示PPT对“bindParam()方法”的各个参数进行讲解。

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“execute()方法”

(1)、教师通过PPT对“execute()方法”的使用进行讲解。

execute()方法不仅可以执行预处理语句,还可以在不使用bindParam()方法时,通过参数设置进行参数绑定。

●当占位符为问号占位符(?

)时,需为execute()方法传递1个索引数组参数;

●当占位符为命名参数占位符(:

参数名称)时,需为execute()方法传递1个关联数组参数。

(2)、教师通过代码对“execute()方法”进行演示。

(3)、学生练习,教师巡视,对疑难问题进行解答。

✧阶段小结

Ø小结

重点:

prepare()方法、execute()方法。

Ø答疑

教师询问学生对于知识点还有什么不理解的地方。

针对学生不理解的知识点给与解释。

【案例37】PDO错误处理机制

✧案例描述

在使用SQL语句操作数据库时,难免会出现各种各样的错误,比如语法错误、逻辑错误等。

为此,PDO提供了错误处理机制,能够捕获SQL语句中的错误,并提供了三种方案可以选择。

接下来在案例中添加错误处理,来体验并了解PDO的错误处理机制。

✧案例讲解

Ø案例分析

•连接数据库后,使用PDO默认处理错误的方式。

•使用预处理方式查询一个不存在的数据表。

•在执行完预处理语句后,输出一句话,观察运行结果。

•将错误处理方式修改为警告模式,观察并对比运行结果。

•将错误处理方式修改为异常模式,观察并对比运行结果。

Ø案例实现

教师带领学生分步骤地进行操作,并指出其中需要注意的事项。

说明:

在案例讲解的过程中,教师可适时停下来,让学生自行尝试。

小组之间可以协作讨论,教师巡视,对疑难问题进行解答。

✧知识点讲解

Ø总结知识点

教师和学生一起总结在案例中涉及到的知识点,主要包括“PDO错误处理默认模式”、“WARNING模式”、“EXCEPTION模式”等。

Ø讲解“PDO错误处理默认模式”

(1)、教师通过代码演示“PDO错误处理默认模式”。

$pdo->setAttribute(PDO:

:

ATTR_ERRMODE,PDO:

:

ERRMODE_SILENT);

(2)、教师展示PPT对“PDO错误处理默认模式”进行讲解。

此模式在错误发生时不进行任何操作,只简单的设置错误代码,程序员可以通过PDO提供的errorCode()和errorInfo()这两个方法对语句和数据库对象进行检查。

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“WARNING模式”

(1)、教师将错误模式设为“WARNING模式”,与PDO默认错误处理模式结果进行对比,让学生总结区别。

$pdo->setAttribute(PDO:

:

ATTR_ERRMODE,PDO:

:

ERRMODE_WARNING);

(2)、教师展示PPT对“WARNING模式”进行讲解。

当错误发生时,除了设置错误代码外,PDO还会发出一条E_WARNING信息。

(3)、学生练习,教师巡视,对疑难问题进行解答。

Ø讲解“EXCEPTION模式”

(1)、教师将错误模式设置为“EXCEPTION模式”,与前两种错误模式结果进行对比,让学生总结区别。

$pdo->setAttribute(PDO:

:

ATTR_ERRMODE,PDO:

:

ERRMODE_EXCEPTION);

(2)、教师展示PPT对“EXCEPTION模式”进行讲解。

在错误发生时,抛出相关异常,停止执行以下代码。

(3)、学生练习,教师巡视,对疑难问题进行解答。

✧阶段小结

Ø小结

重点:

WARNING模式、EXCEPTION模式。

Ø答疑

教师询问学生对于知识点还有什么不理解的地方。

针对学生不理解的知识点给与解释。

✧巩固练习

Ø巩固“预处理语句”与“PDO错误处理模式”

学完知识点后,让学生再次练习“预处理语句”与“PDO错误处理模式”。

以此使学生更熟练地掌握“预处理语句”、“WARNING模式”、“EXCEPTION模式”等知识点的使用。

Ø通过“补充案例”加强学习

教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。

✧布置作业

Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。

Ø预习7.4节【案例38】文章管理系统。

Ø复习前面学过的知识点和案例,加强巩固。

第三课时、第四课时

(【案例38】文章管理系统)

复习上节课内容

在讲解本节内容前,抛出以下问题让学生回答,以复习上节课内容。

1、简述PDO预处理语句的优点?

答案:

(1)只需编译一次后,可以传递相同或不同的参数多次执行。

(2)避免重复分析/编译/优化周期。

(3)由于是预编译语句,可以减少资源的占用,提高运行速度。

(4)防止SQL注入。

说明:

教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。

本课时内容学习

✧案例描述

文章管理系统是一种可以在网站中发布文章,并能够进行修改、删除等管理操作的系统,提高了网站中文章的查找、查看和管理的效率。

接下来,将使用PDO操作MySQL数据库的方式来存储文章相关信息,并结合前面学过的知识实现文章管理系统的开发。

✧案例讲解

Ø案例分析

•封装PDO方式操作数据库类。

•设计数据表,分别保存文章分类和文章详细信息。

•实现文章分类的添加、展示、排序功能。

•使用在线编辑器发表和修改文章。

•分页展示所有文章,并可以编辑和查看具体的文章。

•实现文章与文章分类删除的功能。

Ø案例实现

教师带领学生分步骤地进行操作,并指出其中需要注意的事项。

说明:

在案例讲解的过程中,教师可适时停下来,让学生自行尝试。

小组之间可以协作讨论,教师巡视,对疑难问题进行解答。

→讲解“封装PDO类”

(1)、教师与学生互动:

给出封装PDO类需要实现的功能,然后让学生自己动手实现,与教师交流实现的想法与思路。

(2)、教师演示“封装PDO类”的实现过程。

(3)、学生练习,教师巡视,对疑难问题进行解答。

→讲解“文章分类功能”

(1)、教师展示PPT,让学生了解文章分类的具体需要实现的功能。

(2)、教师带领学生完成“文章分类添加”、“文章分类展示”以及“文章分类排序”的实现。

(3)、学生练习,教师巡视,对疑难问题进行解答。

→讲解“发表文章功能”

(1)、教师展示PPT,让学生了解发表文章功能效果。

(2)、教师带领学生完成“发表文章功能”的实现。

重点讲解在项目中加入在线编辑器的方法,如:

UEditor。

(3)、学生练习,教师巡视,对疑难问题进行解答。

→讲解“文章列表与文章展示”

(1)、教师展示PPT,让学生了解“文章列表”与“文章展示”的效果图。

文章列表:

文章展示:

(2)、教师带领学生分别完成“文章列表”与“文章展示”的实现。

在讲解“文章列表”时,要着重讲解分页的实现原理以及分页类的封装。

(3)、学生练习,教师巡视,对疑难问题进行解答。

→讲解“编辑文章功能”

(1)、教师展示PPT,让学生了解“编辑文章功能”的效果图。

(2)、教师让学生自己完成“编辑文章功能”的实现,最后教师再演示“编辑文章功能”的实现全过程,并指出学生在完成时的问题。

(3)、学生练习,教师巡视,对疑难问题进行解答。

→讲解“文章与分类删除”

(1)、教师展示PPT,让学生了解“文章与分类删除”的效果图。

(2)、教师通过代码演示“文章删除”与“分类删除”的具体实现,并讲解注意事项。

(3)、学生练习,教师巡视,对疑难问题进行解答。

✧阶段小结

Ø小结

重点:

“封装PDO类”、“文章分类功能”、“发表文章功能”、“文章列表与展示”、“文章与分类删除”。

Ø答疑

教师询问学生对于知识点还有什么不理解的地方。

针对学生不理解的知识点给与解释。

✧巩固练习

Ø巩固“文章管理系统”的制作

学完知识点后,让学生再制作一次“文章管理系统”。

以此使学生更熟练地掌握“封装PDO类”、“文章分类功能”、“发表文章功能”、“文章列表与文章展示”、“编辑文章功能”、“文章与分类删除”的使用。

Ø通过“补充案例”加强学习

教师分发测试题目及案例素材给学生,对于掌握较好的同学,可以通过补充案例对相关知识点进行巩固。

✧布置作业

Ø完成“补充案例”,通过平台提交给教师,教师下节课进行点评。

Ø预习8.1节【案例39】ThinkPHP简单使用。

Ø复习前面学过的知识点和案例,加强巩固。

第五课时、第六课时

(上机测试)

教师发放测试题目及案例素材,学生进行上机测试。

以此检查学生对相关知识点的掌握情况。

测试完成后将作品通过平台提交给老师。

上机测试主要针对本章中需要重点掌握的知识点,以及在代码中容易出

错的操作步骤。

通过上机测试可以考察同学对PHP基本语法、流程控制语句、函数、数组、包含语句、流程替代语法的掌握程度。

(作品点评)

教师对学生的提交的上机测试作品进行点评,指出代码中容易出现bug的地方,并给与解答。

✧布置作业

Ø完成课后“动手实践”,并扫描二维码查看答案。

Ø预习8.1节【案例39】ThinkPHP简单使用。

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2