乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      數(shù)據(jù)庫連接類,繼承自PDO

       緣夢書摘 2014-04-25

      <?php
      /**
      * 數(shù)據(jù)庫連接類,繼承自PDO
      */
      class DataBase extends PDO  {
           private $dsn       = "mysql:host=127.0.0.1;dbname=test";
           private $username = "root";
           private $password = "123456";

           /**
            * 構(gòu)造函數(shù)
            *
            */
           public function __construct() {
               PDO::__construct($this->dsn, $this->username, $this->password, array(PDO::ATTR_PERSISTENT => true));
               parent::exec('set names utf8');
               parent::setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
           }

           /**
            * 析構(gòu)函數(shù)
            *
            */
           public function __destruct() {
           }

           /**
            * 執(zhí)行單一的SELECT語句
            *
            * @param string $sql 待執(zhí)行的SQL語句
            * @param string $fetch_style 以哪種形式返回數(shù)據(jù) PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH 等
            * @return array
            */
           function aQuery($sql,$fetch_style=PDO::FETCH_ASSOC) {
               try {
                   $stmt = $this->query($sql);
                   return $stmt->fetchAll($fetch_style);
               } catch (Exception $e) {
                   try {
                       return $this->exec($sql);
                   } catch (Exception $e) {
                       die($e->getMessage());
                   }
               }
           }

           /**
            * 執(zhí)行帶有綁定參數(shù)的SQL語句
            *
            * @param string $sql 要執(zhí)行的SQL語句
            * @param array $array 綁定的參數(shù)
            * @param string $fetch_style 以哪種形式返回數(shù)據(jù) PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH 等
            * @return array or bool
            */
           function moreExec($sql,$array=array(),$fetch_style=PDO::FETCH_ASSOC) {
               try {
                   $stmt = $this->prepare($sql);
                   if(count($array) > 0) {
                       foreach ($array as $k => $v) {
                           $stmt->bindValue($k,$v);
                       }
                   }

                   if(substr(trim($sql),0,6) == 'select') {
                       $stmt->execute();
                       return $stmt->fetchAll($fetch_style);
                   } else {
                       return $stmt->execute();
                   }
               } catch (Exception $e) {
                   die($e->getMessage());
               }
           }

           /**
            * 執(zhí)行帶參數(shù)的語句,并返回總數(shù) 主要用于帶分頁的SELECT語句
            *
            * @param string or array $sql 要執(zhí)行的SQL語句
            * @param array $array 綁定的參數(shù)
            * @param string $fetch_style 以哪種形式返回數(shù)據(jù) PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH 等
            * @return array
            */
           function moreExecCount($sql,$array=array(),$fetch_style=PDO::FETCH_ASSOC) {
               $patterns[0] = "/select .*? from/i";
               $patterns[1] = "/from (\w+) (.*?) where/i";
               $patterns[2] = "/group by (.*?) limit/i";
               $patterns[3] = "/having (.*?) limit/i";
               $patterns[4] = "/order by (.*?) limit/i";
               $patterns[5] = "/limit (\d+),(\d+)/i";
               $patterns[6] = "/limit (\d+)/i";
               $replacements[0] = 'select count(*) as sum from';
               $replacements[1] = "from \$1 where";
               $replacements[2] = 'limit';
               $replacements[3] = 'limit';
               $replacements[4] = 'limit';
               $replacements[5] = '';
               $replacements[6] = '';
               $sqlCount = preg_replace($patterns, $replacements, $sql);

               $sum = $this->moreExec($sqlCount,$array);
               return array($this->moreExec($sql,$array,$fetch_style), 'sum'=>$sum[0]['sum']);
           }

           /**
            * 執(zhí)行一個事務(wù)
            *
            * @param array $sql_array 一些需要同時執(zhí)行的SQL語句
            * @return bool
            */
           function Transaction($sql_array) {
               try {
                   $this->beginTransaction();
                   foreach ($sql_array as $sql) {
                       $s = trim($sql);
                       if(substr($s,0,6) == 'select') {
                           $this->aQuery($s);
                       } else {
                           $this->exec($s);
                       }
                   }
                   $this->commit();
                   return true;
               } catch (Exception $e) {
                   $this->rollBack();
                   return false;
               }
           }
      }
      ?>

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多