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); } }
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); } }
private static function _getData($sql, $start, $end, $sqlParams) { $data = parent::getAll_($sql . ' LIMIT ' . $start . ', ' . $end, $sqlParams); return $data; }
public function getTableInfo() { return parent::getTableInfo_($this->table); }