上一篇文章学了通过pdo来连接数据https://www.cwhello.com/263880.html
下面些总结。
PDO
PDO:连接数据库,发送SQL
exec:发送SQL语句,针对增删改,没有结果集返回
query:发送SQL语句,针对查询,有结果集返回
prepare:发送SQL语句,得到一个预处理
query和prepare方法执行结束后,返回一个PDOStatement对象
PDOStatement:处理mysql服务器返回的数据
fetch:从结果集中返回一行记录,第一个参数用来指定返回的模式(要使用常量)
rowCount,columnCount:结果集中的行的数量和列的数量
execute:执行预处理
bindParam,bindValue:将预处理中的变量进行值绑定
bindColumn:将结果集中取得的一条记录中的某个字段绑定到具体的变量中
PDOException:异常处理,必须保证错误模式为异常模式
实例化对象的过程
今天新学的知识是二次开发ecshop。
安装Ecshop
-
下载Ecshop
-
解压
-
将upload文件夹放到项目目录下,然后重命名为ecshop
-
傻瓜式安装,连接访问到ecshop的根目录下的index.php或者进入install目录访问index.php,进入安装界面
-
同意协议
-
环境支持
开启GD库,php.ini中有一个gd库的扩展
重启Apache
刷新环境监测界面
-
配置系统:数据库信息和用户信息
数据库账号
管理员账号
勾选安装测试数据
-
安装执行
登录后台
-
要对错误进行处理:主要是一些严格的错误,是因为当前PHP的版本与ecshop开发时所应用的PHP版本不一致造成
-
修改后台的错误文件:init.php初始化文件
-
修改前台的错误文件:init.php初始化文件
-
清理缓存:ecshop为了提高响应效率会做一些缓存,在修改了之后需要删除之前访问所遗留的缓存和编译文件。
-
进入系统后台
SHOP项目
模拟ecshop的结构和业务逻辑实现一些系统功能
项目分前台和后台,前台是给用户查看数据的功能,后台是管理员用来管理数据的功能。
后台功能
权限验证:登录,表单,会话技术(session,cookie),验证码等
商品分类:无限级分类
商品管理:文件上传,图片的处理(缩略图,水印),回收站思想
前台功能
注册登录
购物车,订单
如何做项目?
项目设计
架构设计
-
使用什么语言进行开发?PHP?asp?JAVA?
-
开发模式:源码,框架开发,二次开发
-
源码:全部代码自己敲
-
框架开发:TP,YII,CI
-
二次开发:在别人开发好的基础上,做修改
-
当前在国内比较流行的开发模式:框架开发和二次开发,原因是效率;一般对安全性要求高的项目,基本都是使用源码开发
代码设计
-
目录结构设计
-
代码设计:
-
面向过程PK面向对象
-
功能如何划分
-
代码规范
-
shop项目采用PHP源码开发,采用MVC架构设计,仿照Ecshop的文件结构,采用面向过程和面向对象混搭模式
数据库设计
数据库选择
-
什么类型数据库?关系型or非关系型?
-
服务器选择
-
存储引擎的选择
-
数据库结构
shop项目采用mysql数据库,采用默认存储引擎InnoDB,每一类(实体)数据对应一张表
Ecshop目录结构
前台部分
后台部分
shop目录结构
-
项目根目录
-
对应项目目录
-
前台目录
-
-
后台目录
-
配置虚拟主机,访问shop目录
重启Apache
修改hosts文件
访问
后台权限验证
所有跟权限相关的请求,都请求同一个文件:privilege.php
权限相关:登录,退出,验证码
登录功能
-
加载登陆界面
-
将login.php模板文件放到/admin/templates目录下
-
在/admin/privilege.php里面加载login.php文件
-
-
从Ecshop里面把后台对应的js,styles和images全部拿过来放到/admin目录下
-
修改login.php模板里面的img标签,找到对应的图片login.gif =è login.png
如何进行用户登录?
要保证有一个可以用的账号。第一个用户往往是通过在数据库后台进行数据插入得到(原因是因为大部分后台没有注册的功能)。
搭建项目数据库
数据库名字:shop
后台用户表:sh_admin
后台公共代码
新建一个init.php文件,用来保存后台的公共代码,文件放到/admin/includes/
在需要被访问(用户)的脚本内加载项目初始化文件/admin/privilege.php
登录功能
区分用户的请求,到底是请求登录界面还是请求验证用户信息?
通过给用户的请求设定一个标志,用act(action)来表示,如果用户没有请求动作,那么默认指定一个动作给用户。
对动作进行判断,然后根据不同的动作进行不同的操作
有很多地方会要用到跳转,使用html跳转,做一个跳转界面(模板),放到/admin/templates/admin_redirect.html
在需要跳转的时候将跳转模板加载
但是每次需要跳转的时候都需要写这么三个参数非常麻烦,所以把跳转封装一个函数。/admin/includes/functions.php
将公共函数加载到init.php文件/admin/includes/init.php
在后台需要跳转的地方直接使用admin_redirect函数
没一张表对应每一类数据的操作,针对没一张表抽象出一个类,表名跟类名一样,类名不需要表前缀。每一个类,凡是要操作数据库的都继承DB类。
因为前台和后台都需要操作数据,类都放到前台的includes下面/includes
再在该目录下创建一个Admin.class.php文件
注意:因为Admin类继承自DB类,所以也继承了对应的方法,不再需要构造方法去实例化DB类的对象。
使用Admin类的验证用户名和密码的功能/admin/privilege.php
去Admin类里补充checkByUsernameAndPassword方法
增加自动加载方法,/admin/includes/functions.php
判断登录结果:/admin/privilege.php
制作系统配置文件,配置数据库信息/config/config.php
在init.php中加载配置文件/admin/includes/init.php
修改DB类/includes/DB.class.php
用户访问privilege.php的执行流程图,见画图
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/263931.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除