public function __construct($verb, $dbengine = false, $autoTablePrefix = true) { $this->verb = strtoupper($verb); if (!in_array($this->verb, static::$legalVerbs)) { throw new NoSuchVerbException("The verb '{$verb}' is invalid or not available."); } $this->autoTablePrefix = $autoTablePrefix; $this->query = array(); $this->query[$this->verb] = array(); $this->joinStack = array(); $this->whereStack = array(); $this->havingStack = array(); $this->tableAliases = array(); $this->reqJoinCond = false; $this->dbengine = $dbengine instanceof DatabaseEngine ? $dbengine : DatabaseEngineFactory::getEngine($dbengine); $this->prefix = $this->dbengine->getTablePrefix(); }
public static function select($query = false, $doMapping = false, $mapOverride = false, $dbengine = false) { $dbengine = $dbengine instanceof DatabaseEngine ? $dbengine : DatabaseEngineFactory::getEngine($dbengine); if (!$query) { $query = new Query('SELECT', $dbengine); } if ($mapOverride) { $mapOverride = array_merge(static::$beanMap, $mapOverride); } if ($doMapping !== false) { static::buildMappedSelect($query, $doMapping, $mapOverride); } else { foreach (static::$fields as $field) { $query->field($field); } $query->from(static::$tableNoPrefix); } $stmt = $query->prepare(); if (!$stmt->execute()) { $info = $stmt->errorInfo(); $e = new QueryFailedException($info[2]); $e->errorInfo = $info; throw $e; } $results = array(); $beanClass = get_called_class(); $registry = new BeanRegistry(); while ($row = $stmt->fetchAssoc()) { if ($doMapping !== false) { $bean = static::getMappedBean($dbengine, $doMapping, $mapOverride, $row, $registry); } else { $bean = new $beanClass($dbengine, $row, false); } $results[] = $bean; } return $results; }
protected function escapeString($string) { $engine = DatabaseEngineFactory::getEngine(); return $engine->quote($string); }