public function getConnection() { if (!isset(SalamaSqlDatabase::$_connection[$this->_name])) { $backend = SalamaDatabaseManager::getCurrentBackend(); $driver_name = sprintf("Salama%sDriver", ucfirst($backend['driver'])); $driver = new $driver_name(); $driver->dsn = $this->_dsn; $connection = $driver->connect(); SalamaSqlDatabase::$_connection[$this->_name] = $connection; } return SalamaSqlDatabase::$_connection[$this->_name]; }
public function select($args, $query) { $backend = SalamaDatabaseManager::getCurrentBackend(); $quote = $backend['quote']; if (empty($quote)) { $quote = ''; } # setup select(), if no select() used and not a raw() query if (!$this->builder->recursive_array_search('raw', $query->methods)) { foreach ($query->_involved_tables as $k => $array) { $alias = $this->builder->getAlias($array['table'], $query); $select_fields = $this->_sel_fields(SalamaData::$c[$array['table']][SalamaBuild::$meta]['fields'], $alias, $quote); } $sql = implode(', ', $select_fields); } else { $select_key = $this->builder->recursive_array_search('select', $query->methods); $select_sql = isset($query->methods[$select_key][1][0]) ? $query->methods[$select_key][1][0] : null; $sql = $this->select($select_sql); } $this->sql = $sql; }