Ejemplo n.º 1
0
 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];
 }
Ejemplo n.º 2
0
 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;
 }