~desarrollokumbia/kumbia/ActiveRecord

« back to all changes in this revision

Viewing changes to db_pool/db_query.php

  • Committer: Deivinson Tejeda
  • Date: 2010-01-22 22:44:49 UTC
  • Revision ID: deivinsontejeda@gmail.com-20100122224449-8a03r26ppfuz3963
1->Arreglando el find() para que funcione con y sin chain
2->En el DbQuery 
        ->En el método where se recibe un array para realizar las consultas preparadas (Prepared Statement)
        ->se agrega método para obetener los params para enlazar al SQL
        ->Se agrega método column para indicar las columnas que se quiere en la consulta

3->En el DbAdapter en la construcción del Query en el where se hace un implode directo ya que la consulta es preparada

Ejemplo
//Modelo
    public function buscar()
    {
        $this->get()->columns('nombre, id')
                    ->where(array('id > ?'=>2, 'id<?'=>5))
                    ->limit(2);

        //ejecuta un find() personalizado via chain
        return $this->find();
                         
    }

//Otra forma
    public function buscar()
    {
        //ejecuta un find() por defecto
        return $this->find();
    }

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
     **/
50
50
    public function where($conditions) 
51
51
    {
52
 
        $this->_sql['where'] = $conditions;
 
52
        $where = array();
 
53
        if(is_array($conditions)){
 
54
            foreach ($conditions as $k => $v) {
 
55
                $this->_sql['params'][] = $v;
 
56
                $where[] = $k;
 
57
            }
 
58
        }
 
59
        $this->_sql['where'] = $where;
53
60
        return $this;
54
61
    }
 
62
    /**
 
63
     * Parametros que seran enlazados a la setencia SQL
 
64
     * 
 
65
     * @return Array
 
66
     */
 
67
    public function params()
 
68
    {
 
69
        if(isset($this->_sql['params'])){
 
70
            return $this->_sql['params'];
 
71
        }
 
72
        return NULL;
 
73
    }
55
74
    
56
75
    /**
57
76
     * Clausula INNER JOIN
193
212
     * Construye la consulta SELECT
194
213
     *
195
214
     * @param string $columns columnas
196
 
     * @return string
 
215
     * @return DbQuery
197
216
     **/
198
217
    public function select($columns='*') 
199
218
    {
200
219
        $this->_sql['select'] = $columns;
201
220
        return $this;
202
221
    }
203
 
    
 
222
    /**
 
223
     * Columnas a utilizar en el Query
 
224
     * @return DbQuery
 
225
     */
 
226
    public function columns($columns)
 
227
    {
 
228
        $this->select($columns);
 
229
        return $this;
 
230
    }
204
231
    /**
205
232
     * Construye la consulta DELETE
206
233
     *
208
235
     **/
209
236
    public function delete() 
210
237
    {
211
 
        $this->_sql['delete'] = true;
 
238
        $this->_sql['delete'] = TRUE;
212
239
        return $this;
213
240
    }
214
241