Esempio n. 1
0
 private static function _execute($sql, $params)
 {
     try {
         if (!self::$sqlDebug) {
             self::$sqlDebug = BFW_Request::get('sqlDebug');
         }
         if (self::$sqlDebug) {
             $startTime = BFW_Func::getMicroTime();
         }
         self::$sth = self::$pdo[self::$db]->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
         self::$sth->execute($params);
         if (self::$sqlDebug) {
             $endTime = BFW_Func::getMicroTime();
             $times = $endTime - $startTime;
             if (preg_match('/^SELECT/i', $sql)) {
                 $sql = self::_getSelectSqlString($sql, $params);
                 $explain = self::_getExpain('EXPLAIN ' . $sql);
                 BFW_App::$appGlobal['sqlDebug'][self::$db][] = array('sql' => $sql, 'explain' => $explain, 'time' => number_format($times, 10));
             }
         }
     } catch (PDOException $e) {
         $traceArr = $e->getTrace();
         $content = '[' . date('Y-m-d H:i:s') . ']' . "\n";
         foreach ($traceArr as $k => $v) {
             $content .= '# Error in file "' . $v['file'] . '" on line "' . $v['line'] . "\"\n";
         }
         $content .= '# ' . $e->getMessage() . "\n" . '# SQL String: ' . $sql . "\n\n";
         die($content);
     }
 }
Esempio n. 2
0
 public function update()
 {
     if (isset(self::$setData[$this->key])) {
         $sqlArr = parent::_getWhereSql($this->primaryId);
         foreach (self::$setData[$this->key] as $key => $val) {
             if (preg_match('/[\\*\\+\\/\\%-]|^CONCAT\\((.*)[,].?(.*)\\)$/i', $val)) {
                 $fieldArr[] = $key . ' = ' . $val;
             } else {
                 $fieldArr[] = $key . ' = ?';
                 $valueArr[] = $val;
             }
         }
         unset(self::$setData[$this->key]);
         $params = BFW_Array::merge(array($valueArr, $sqlArr['params']));
         $sqlStr = 'UPDATE ' . $this->table . ' SET ' . join(',', $fieldArr) . $sqlArr['sql'] . "\n";
         return parent::query($sqlStr, $params);
     }
 }
Esempio n. 3
0
 private static function _getData($sql, $start, $end, $sqlParams)
 {
     $data = parent::getAll_($sql . ' LIMIT ' . $start . ', ' . $end, $sqlParams);
     return $data;
 }
Esempio n. 4
0
 public function getTableInfo()
 {
     return parent::getTableInfo_($this->table);
 }