PDO数据库操作类——连接指定类型数据库

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/76/ ]

mPHP核心框架通过PDO类,很容易就能从一个数据库迁移到另一个数据库,只需修改几行配置即可.我的博客就经历过从postgresql迁移回Mysql,再迁移到MariaDB上.之所以这么折腾,还得说点题外话.

mPHP核心框架通过PDO类,很容易就能从一个数据库迁移到另一个数据库,只需修改几行配置即可。我的博客就经历过从postgresql迁移回Mysql,再迁移到MariaDB上。之所以这么折腾,还得说点题外话。

2013年,回到南宁加入的第一家刚成立不久的互联网公司,使用的postgresql数据库,网站基于drupal开源系统开发。当时我对postgresql的了解仅仅停留在看过一些关于postgresql与mysql的评测,drupal开源系统对我来说更是新鲜事物,毕竟我在越野e族做开发的时候,用的都是部门定制的框架,像dede、discuz、ThinkPHP这类优秀的开源程序我都没使用过。

他们列出的技能都是我没掌握的技术,所以一开始我就以学习的心态加入了他们。后来,我发现这家公司完全没能力驾驭这些技术,一知半解环境,更不用说培训了,只是花钱买了drupal的视频教程,剩下的完全自己琢磨。搞笑的是,服务器买回来后,postgresql数据库还得由我来配置才能正常使用,现在想想都想笑。

当初为了“与时俱进”,我才在磨途歌的阿里云服务器上安装了postgresql数据库.。几经周折,我最后又把数据库改成了MariaDB。原因如下,postgresql相关的中文书籍资料没有Mysql的多,最核心的一点的是:web程序的瓶颈究竟在数据库,还是自己?

言归正传,PDO连接数据库的方法如下:

<?php
$CFG['host'] = '127.0.0.1';//服务器地址
$CFG['port'] = '3306';//数据库端口
$CFG['user'] = 'root';//数据库用户名
$CFG['password'] = '123456';//密码
$CFG['dbname'] = 'mo2g';//数据库
$CFG['type'] = 'mysql';//数据库类型,postgresql的类型为pgsql
$pdo = new pdoModel($CFG);

class pdoModel {
    public function __construct($arrConfig) {
        $type = $arrConfig['type'];
        $name = $arrConfig['dbname'];
        $host = $arrConfig['host'];
        $port = $arrConfig['port'];
        $user = $arrConfig['user'];
        $pass = $arrConfig['password'];
        
        $link = "{$type}:host={$host};port={$port};dbname={$name}";
        
        try {
            //$this->db = new PDO($link, $user, $pass);//短链接
            $this->db = new PDO($link, $user, $pass, array(PDO::ATTR_PERSISTENT => true));//长链接
        } catch( PDOException $e ) {
            $this->db = false;
            //连接失败则输出自己想要的信息
            //echo 'PDO Connection failed: ' . $e->getMessage();
            //echo '网站正在进行更新升级操作,为此给您带来的不便,请谅解...';
            return false;
        }
        $this->db->exec('set names utf8');//设置与数据库对应的字符编码,防止中文乱码
    }
}


评论:

  1. unknown 回复2015年06月01日 20时10分
    磨者
    好文章,内容点石成金.禁止此消息:nolinkok@163.com
    肉牛 http://www.xmten.com/

  2. qwe 回复2015年07月07日 19时01分
    磨者
    第5行多了个],呵呵

      磨延城 @qwe 回复2015年07月08日 20时50分

      多谢提醒,已更正。

  3. qwe 回复2015年07月07日 19时06分
    磨者
    你这个和其它网站的代码比起业,有点麻烦,对于新手有点头晕。

      磨延城 @qwe 回复2015年07月08日 20时52分

      感谢你提的意见,之后我会进一步完善

  4. 冯XL 回复2016年07月02日 15时00分
    磨者
    感谢博主,可以从第一步开始教我使用PDO连接数据库,之前都是用的mysql来连接的。
    看了一些资料,说mysql这种原始的连接方式会被淘汰,现在只好硬着头皮来学习PDO的连接方法。
    
    另外吐槽一下楼主的这个评论系统,要填写的信息太多了。

  5. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码