Example #1
0
File: Pdo.php Project: ssrsfs/blg
 public function delete(Dbi_Model $query)
 {
     $components = $query->components();
     $delete = new Dbi_Sql_Query_Delete();
     $delete->table($query->prefix() . $components['table']);
     foreach ($components['where'] as $where) {
         $orStatements = array();
         $orParameters = array();
         foreach ($where->expressions() as $or) {
             $orStatements[] = $or->statement();
             $orParameters = array_merge($orParameters, $or->parameters());
         }
         $args = array_merge(array(implode(' OR ', $orStatements)), $orParameters);
         call_user_func_array(array($delete, 'where'), $args);
     }
     $expression = $delete->expression();
     $this->_execute($delete);
 }
Example #2
0
 protected function _generateSql(Dbi_Model $query)
 {
     //$select = new BuildSql_Select('mysqli_real_escape_string');
     $select = new Dbi_Sql_Query_Select();
     $components = $query->components();
     // Table
     $select->table($query->prefix() . $components['table'] . ' AS ' . $components['table']);
     $this->_build($select, $query, $components);
     if (count($components['orders'])) {
         $fixedOrders = array();
         foreach ($components['orders'] as $order) {
             $parts = explode(' ', $order);
             if (strpos($parts[0], '.') === false && strpos($parts[0], '(') === false) {
                 //$parts[0] = "{$components['table']}.{$parts[0]}";
             }
             $fixedOrders[] = implode(' ', $parts);
         }
         $select->order(implode(', ', $fixedOrders));
     }
     if (is_array($components['limit'])) {
         $select->limit(implode(',', $components['limit']));
     }
     return $select;
 }
Example #3
0
File: MySql.php Project: ssrsfs/blg
 public function delete(Dbi_Model $query)
 {
     self::$queryCount++;
     $components = $query->components();
     $delete = new BuildSql_Delete();
     $delete->table($query->prefix() . $components['table']);
     foreach ($components['where'] as $where) {
         $orStatements = array();
         $orParameters = array();
         foreach ($where->expressions() as $or) {
             $orStatements[] = $or->statement();
             $orParameters = array_merge($orParameters, $or->parameters());
         }
         $args = array_merge(array(implode(' OR ', $orStatements)), $orParameters);
         call_user_func_array(array($delete, 'where'), $args);
     }
     mysql_query($delete->query());
     if (mysql_error()) {
         throw new Exception(mysql_error());
     }
 }