mysql类的编写思路

在框架里,mysql类是一个封装的比较完整的类,TP框架中,通过大量的简化连接操作,极大的提升了开发效率,但是封装的越完善的类,其效率往往比较低下。
这里封装了一个简单的mysql类(简单到只有一个select一个内置方法)因为除了读取之外,其余的几个操作,比如增加,删除,改动得到的返回结果只有正确或者错误俩个,所以数据库操作可以分为俩类,一类是不是逻辑值的另一类是逻辑值的。
   下面的一个简单方法主要实现的封装:(读写服务器的分离,读取是在副服务器上,增加删除修改在主服务器上,从服务器根据主服务器的数据改动复制主服务器的数据结构)
//全局变量配置,自动加载的时候,需要加载进去
$config =  array(
        "DB_HOST"=>"127.0.0.1",
         "DB_USER"=>"root",
         "DB_PWD"=>"root",
         "DB_NAME"=>'onethink',
         "SLAVE"=>array(
                 "DB_HOST"=>"127.0.0.1",
                 "DB_USER"=>"root",
                 "DB_PWD"=>"root",
                 "DB_NAME"=>'yyy'                                                      
                  )
               );
//封装的主从读取类
class  Dbmysql  {    
     public function connect($type=1)  {
         global   $config;
     //将全局变量里的大写键值配置全部转化成小写识别
         $setConfig = array_change_key_case($config);
         $setConfig['slave']=array_change_key_case($config['SLAVE']);
     //如果是读取列表,用第二种方式,其他的查询语句用第一种方式,区分数据库的连接
         if($type==1) {
           $host = $setConfig['db_host'];    
           $username = $setConfig['db_user'];
           $passwd = $setConfig['db_pwd'];
         }  else  {
            $host = $setConfig['slave']['db_host'];    
           $username = $setConfig['slave']['db_user'];
           $passwd = $setConfig['slave']['db_pwd'];
         }
        $con = mysql_connect($host,$username,$passwd);      
        if($type&&$con){
          mysql_select_db($setConfig['db_name'],$con);
        } else {
          mysql_select_db($setConfig['slave']['db_name'],$con);
        }
         return   $con;
     }
     //循环列表读取所有的字段,读取的数据库连接是用第一种方式
     public  function   getAll($sql) {
            $res = $this->query($sql,$this->connect(0));
            while($r = mysql_fetch_assoc($res))
          {
            $rtarr[]=$r;
          }
          return   $rtarr;
     }
   //执行sql语句。除了读取,其余的方式都是用执行的方式
     public  function   query($sql,$con) {
          $con = $this->connect(1);
         $res = mysql_query($sql,$con);
          return   $res;
     }


}
  //运行结果进行测试
 $m = new  Dbmysql();
 $query = "select id,action_id,create_time  from  onethink_action_log  limit 20";
 $a = $m->getAll($query);

print_r($a);

转载于:https://my.oschina.net/xiongyuanliang/blog/544582

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值