作用:主要作用通过构建PDO对象与数据库进行交互

代码解析

属性:

 protected $config = [
//数据类型
'type'=>'',
//服务器地址
'hostname'=>'',
//端口号
'hostport'=>'',
//数据库名
'dbname'=>'',
//用户名
'username'=>'',
//密码
'password'=>''
];
//PDO连接ID 支持多个数据库连接
protected $links = [];//连接参数
protected $params = [PDO::ATTR_CASE => PDO::ATTR_CASE_NATURAL,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_ORACLES_NULLS => PDO::NULL_NATURAL,PDO::ATTR_STRINGIFY_FETCHES => false,PDO::ATTR_EMULATE_PREPARES =>false
]protected $fetchType = PDO::FETCH_ASSOC;

初始化:

public function __construct(array $config=[]){if(!empty($config)){$this->config = array_merge($this->config,$config);}
}

连接数据库:

public function connection(array $config=[],$linknum=0,$autoconnection=false){if(!isset($this->links[$linknum])){if (!$config) {$config = $this->config;}else{$config = array_merge($this->config,$config);}if(isset($config['params'] && is_array($config['params'])){$params = $config['params'] + $this->params;}else{$params = $this->params;}if (isset($config['result_type'])){$this->fetchType = $config['result_type'];}if(!isset($config['dsn'])){$config['dsn'] = $this->parseDsn($config);}try{$this->links[$linknum] = new PDO($config['dsn'],$config['username'],$config['password'],$params);}catch(PDOException $e){throw $e;}}return $this->links[$linknum];
}protected function parseDsn(array $config){if(!empty($config['socket'])){$dsn = 'mysql:unix_socket='.$config['socket'];}elseif (!empty($config['hostport'])) {$dsn = 'mysql:host='.$config['hostname'].';port='.$config['hostport'];}else{$dsn = 'mysql:host='.$config['hostname'];}$dsn.= ';dbname='.$config['database'];if (!empty($config['charset'])) {$dsn.= ';charset='.$config['charset'];}return $dsn;
}
?>

Conncetion相关推荐

  1. Spring JdbcTemplate方法详解

    2019独角兽企业重金招聘Python工程师标准>>> Spring JdbcTemplate方法详解 标签: springhsqldbjava存储数据库相关sql 2012-07- ...

  2. iOS HTTP与 HTTPS

    iOS HTTP/HTTPS HTTPS 知识图总览 TCP三次握手与四次挥手 网络连接是需要三次握手才可以连接上. 建立连接(tcp三次握手):我知道你知道我知道了 断开连接(四次挥手):我确定了你 ...

  3. python8_python8

    一.Socket进阶 运用socket实现简版ssh,即在客户端输入指令,服务器收到指令后执行并返回结果 1 importsocket 2 importos 3 server =socket.sock ...

  4. 无线基站侧的信令风暴根因——频繁的释放和连接RRC产生大量信令、设备移动导致小区重选信令增加、寻呼信令多...

    全局思维(核心网和无线基站侧都会有信令风暴): LTE网络系统可能出现信令风暴的原因,大致可以总结出以下几点: 1.网络架构的变化,导致4G核心网信令流量较2G/3G大幅增加 a)架构扁平化:LTE网 ...

  5. 使用netfilter_queue改包笔记

    系统:centos 7 准备:安装libnetfilter_queue模块,可以yum安装,也可以网上下载rpm包安装 简介:使用iptables在NAT表上创建DNAT与SNAT规则,对数据包进行转 ...

  6. Windows XP SP2疑难速解50问

    一.SP2的十大亮点 要想系统地了解Windows XP SP2可能会引起的问题,并快速诊断问题的原因所在,应先对Windows XP SP2的新功能有个基本的了解,这就是Windows XP S ...

  7. 解决“The type initializer for'Oracle.DataAccess.Client.OracleConnection' threw an exception ”异常...

    上次做了一个小的EXE应用程序,发给老大后,昨天老大告诉我程序在服务器端运行会抛出异常. 今天我从早上上班一直弄到写这篇BLOG,才解决掉. 设置断点进去跟踪发现是在Conncetion.open() ...

  8. jdbc template 学习总结

    Spring JdbcTemplate方法详解 JdbcTemplate主要提供以下五类方法: execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句: update方法及batchU ...

  9. 连接myeclipse和mysql数据库,MyEclipse与Mysql数据库的连接

    1.载入MySql驱动程序 Class.forName("com.mysql.jdbc.Driver");    // 载入MySql驱动程序 2.建立Connection连接对象 ...

最新文章

  1. C语言中字符数组和字符串指针分析
  2. 服务被干爆了!竟然是日志的锅!!
  3. ViBe算法原理和代码解析
  4. 选择多级分类_② 供应商管理(分类、评估、选择、绩效、集成、供应商过多的对策、多级供应商管理)...
  5. mysql合集_Mysql数据库知识点合集
  6. 完美的代价(蓝桥杯)
  7. [Android自定义控件] Android Scroller工具类和GestureDetector的简单用法
  8. GAMP读取精密星历存在一个小BUG
  9. 无觅相关文章插件主页新版推出
  10. 用shader做一个柿子颜色的过场动画
  11. AI领域算法作者及项目直播分享汇总-不断更新ing
  12. app inventor入门详细教程(音乐播放器)01
  13. 巨子生物在香港上市:薇娅突击入股,范代娣、严建亚夫妇提前套现
  14. 基于MFC开发的单文档画图(线段,多线段,矩形,椭圆,多边形),选中,变色,平移,线段长度,区域面积计算
  15. 《赠卫八处士》 作者:杜甫
  16. 数据抓取工具有哪些-数据抓取工具免费推荐的有哪些
  17. Windows系统制作安装
  18. 计算机培训总结ppt用什么音乐,音乐教育行业年终总结ppt
  19. 【云原生】SQL(及存储过程)跑得太慢怎么办?
  20. 迅捷语音云服务将wav格式的语音转换成文字

热门文章

  1. python中[x是什么意思_python中x[::]什么意思
  2. asdl能够连接成功,不能打开网页,qq超时登陆
  3. 《网络是怎样连接的》第四章 接入网,网络运营商
  4. 小视频源码炙手可热的秘密,短视频行业先驱者们给我们留下启示
  5. icp网站 icp网站有哪些
  6. 如何让销售和开发部门团结协作
  7. 多媒体会议系统,会议室解决方案
  8. Snap Shots 产生的预览缩图
  9. 互联网产品,如何作?
  10. 视频播放(三)——视频播放