martes, 12 de abril de 2011

CodeIgniter, manipular Base de Datos con Active Record: Modificando Datos

Insertando Datos:

$this->db->insert();

Genera una cadena de inserción basado en los datos que se suministren, y ejectua la consulta devolviendo true o false en el caso de haber error. Se puede pasar una arreglo o un objeto a la función:

$datos = array (
'nombre' => 'desprogramate'
, 'titulo' => $titulo
, 'fecha' => $fec
);

$this->db->insert('mitabla', $datos);

> INSERT INTO mitabla (nombre, titulo, fecha) VALUES ('desprogramate', 'titulo', 'fec');

También se puede utilizar la funcion $this->db->set(); que permite establecer valores para insertar y para actualizar:

$this->db->set('nombre', 'desprogramate');
$this->db->set('titulo', $titulo);
$this->db->set('fecha', $fec);
$this->db->insert('mitabla');

> INSERT INTO mitabla (nombre, titulo, fecha) VALUES ('desprogramate', 'titulo', 'fec');

Es exactamente igual que la sentencia anterior, pero la instrucción $this->db->set(); tiene un tercer parametro en el cual le podemos indicar si queremos que escapee o no. Por defecto esta a TRUE.

$this->db->set('campo', 'campo+1', FALSE);
$this->db->insert('mitabla');

> INSERT INTO mitabla (campo) VALUES (campo+1)

$this->db->set('campo', 'campo+1');
$this->db->insert('mitabla');

> INSERT INTO mitabla (campo) VALUES ('campo+1')

Actualizando Datos:

La instrucción $this->db->update(); actualiza datos pesándole un arreglo o un objeto:

$datos = array(
'titulo' => $titulo,
'nombre' => $nombre,
'fecha' => $fec
);

$this->db->where('id', $id);
$this->db->update('mitabla', $datos);

> UPDATE mitabla SET
titulo = 'titulo'
, nombre = 'nombre'
, fecha = 'fec'
WHERE id = $id

La función $this->db->update() admite un tercer parámetro que hace a su vez de función where, ej:

$datos = array(
'titulo' => $titulo,
'nombre' => $nombre,
'fecha' => $fec
);

$donde = array ( 'id' => $id );

$this->db->update('mitabla', $datos, $donde);

La instrucción resultante seria la misma del ejemplo anterior.

En la actualización de datos se puede utilizar también la función $this->db->set().


Borrando Datos:

La función $this->db->delete(); genera una cadena de eliminación SQL y ejecuta la consulta.

$this->db->delete('mitabla', array('id' => $id));

> DELETE FROM mitabla
WHERE id = $id

También se puede utilizar la función $this->db->where('id', $id)

$this->db->where('id', $id);
$this->db->delete('mitabla');

La instrucción resultante seria la misma del ejemplo anterior.

Otras funciones para el borrado:

$this->db->empty_table();
$this->db->truncate();

2 comentarios: