当前位置: 首页 > news >正文

怀柔区住房和城乡建设委员会网站/seo竞争对手分析

怀柔区住房和城乡建设委员会网站,seo竞争对手分析,谷歌做网站推广,西宁电商网站制作公司来自博客:神的尾巴,原文链接已经提交到github,DB组件代码,代码质量一般,大家将就着看 :) 使用PDO 基于PDO,PDO提供了一个数据访问抽象层,能够支持多种数据库。另外使用预处理语句,能…

来自博客:神的尾巴,原文链接

已经提交到github,DB组件代码,代码质量一般,大家将就着看 :)

使用PDO

基于PDO,PDO提供了一个数据访问抽象层,能够支持多种数据库。另外使用预处理语句,能有效预防SQL注入

预处理语句是分两次发送到数据库的,第一次发送语义,例如: selecet * from user where username = ? and password = ? limit 1,如果不使用预处理语句,就可能导致sql注入。例如,用户名:godtail,密码:123456 or 1 = 1。但是如果是预处理语句的话,会把语义和数据分两次发送到数据库。这样就防止数据影响SQL语义,导致SQL注入(需要设置PDO::ATTR_EMULATE_PREPAREStrue,否则会在PHP模拟处理,进行数据转义)。

支持多个数据库

定义静态变量用来接收配置文件,用来配置单个或者多个数据库。

#单个数据库
return ['dbType' => 'Mysql','host' => '127.0.0.1','database' => 'blog','port' => '3306','user' => 'root','password' => 'root','charset' => 'utf8'
]#多个数据库
return ['main' => ['dbType' => 'Mysql','host' => '127.0.0.1','database' => 'blog','port' => '3306','user' => 'root','password' => 'root','charset' => 'utf8']'log' => ['dbType' => 'Mysql','host' => '127.0.0.1','database' => 'blog_log','port' => '3306','user' => 'root','password' => 'root','charset' => 'utf8']
]

使用单例,防止多次初始化同一个DB,保证一个DB只有一个连接。

调用方法如下:

#单个
$db = Db::instance();#多个
$dbLog = DB::instance('log');

每种数据库支持的操作和连接方式不一样,使用抽象类Driver实现通用功能。然后,每种数据库驱动继承Driver,负责实现例如连接方式等,不同数据库的特有功能。在实例化的时候,会根据配置的dbType,返回每个db对于的驱动。

支持类似TP or Laravel的连贯操作

我把连贯操作分为两类:

  1. 设置数据的dataOpt。例如:where, field, limit...

  2. 执行最后查询或修改操作的endOpt。例如: find, select...

在抽象类Driver,定义protected属性,$dataOpt$endOpt,用来标记,每个db支持的dataOptendOpt,例如Mysql支持limitSQL Server不支持(或者说实现的方式不一致)。

dataOpt实现接口DataOpt,提供方法parse,返回数据包含,sqlPart用来拼装sql,paramssql ?对应的参数。

interface DataOpt
{/*** @return array*  [*      'sqlPart' => ' where name = ?',*      'params' => ['godtail']*  ]*/public static function parse($arguments);
}

在调用的时候,使用Driver的魔法方法__call,如果是dataOpt,设置数据到$data变量,如果是endOpt,根据endOpt设置的执行顺序,执行对于数据的解析。

判断是否有endOptAfter方法或endOptBefore,依次调用(后面打算使用Hook实现)。

http://www.lbrq.cn/news/1110205.html

相关文章:

  • 上海做网站优化价格/沈阳网站关键词优化公司
  • windous 系统 做网站/杭州网站优化培训
  • 零食网站建设的必要性/seo快速工具
  • 移动网站设计尺寸/简述搜索引擎优化
  • 濮阳网站制作/推广seo网站
  • 英文做影评的网站/产品互联网推广
  • 上海英文网站建设/二级域名注册
  • 最好网页游戏网站/热搜词工具
  • 网站开发看谁的教程/在线资源链接
  • 做网站不备案用香港空间可以吗/百度seo优化怎么做
  • 人人车网站建设费用/文库百度登录入口
  • 广州市酒店网站设计/营销型网站策划书
  • 沈阳网站制作流程/最新腾讯新闻
  • 政府网站建设团队/营销方式和手段
  • 网易那个网站可以做字幕/国内好的seo网站
  • 付费网站模板/怎么开网店
  • 郑州做网站比较好公司/如何优化网站排名
  • 怎么开始做网站/今天重要新闻
  • 怎样建商业网站/推广专家
  • 线上职业技能培训平台/seo技术培训泰州
  • 旅游网站建设网站目的/今天发生的重大新闻事件
  • 服务器托管报价/沈阳百度seo排名优化软件
  • 湛江网站推广优化/什么叫seo优化
  • 网站支持ipv6怎么做/建设网官方网站
  • 河南建达工程建设监理公司网站/百度广告竞价排名
  • 论述网站建设的步骤/seo权威入门教程
  • 网站设计上海/站长统计 站长统计
  • 快速模仿一个网站/站长工具排名查询
  • 西安网站建设电话咨询/多用户建站平台
  • 如何ps做网站首页/东莞搜索引擎推广
  • b-up:Enzo_Mi:深度学习基础知识
  • 25数据库三级备考自整理笔记
  • MySQL 插入时间 更新时间
  • [spring6: PointcutAdvisor MethodInterceptor]-简单介绍
  • JavaSE -- 对象序列化和反序列化详细讲解
  • ota之.加密算法,mcu加密方式