CodeIgniter – Problema con las comillas

Uno de los problemas que más sufrimos a la hora de desarrollar son las comillas, las simples y las dobles. Cuando montas la consulta en el modelo, hay que vigilar cómo trabajas. Codeigniter también pues tener un problem con las comillas.

Para comenzar, veamos cómo podría ser una consulta SQL en codeigniter. Crearemos una variable $sql que contendrá la consulta:

$sql= "UPDATE empresa SET Razonsocial='". $this->input->post("razonsocial") ."' WHERE id=". $id;

Pero aquí, y es ahora donde vienen los problemas, podemos tener un problema: imaginad que la razón social que viene del formulario, tiene una comilla simple. Cómo quedaría la consulta:

$sql= "UPDATE empresa SET Razonsocial='Ricki's Mortimore' WHERE id=". $id;

La consulta daría error. La comilla simple del campo haría que la consulta no se pudiera ejecutar. Para solucionarlo CodeIgniter proporciona una función muy útil que nos ahorrará tiempo y dolores de cabeza:

$sql= "UPDATE empresa SET Razonsocial=". $this->db->escape($this->input->post("razonsocial")) ." WHERE id=". $id;

Aquí tenemos dos novedades:

  • Por una parte, la función escape. Ésta se encarga de ‘limpiar’ las comillas que tengamos,
  • Por otra parte, debemos fijarnos que las comillas simples que ponemos en la consulta, desaparecen. Es muy importante. La función escape() se encarga de todo. Debemos poner Razonsocial=$this->db->escape() . Sin comillas.

Pues nada, espero que os sea de utilidad, y podáis solucionar los problemas de comillas a la hora de trabajar con bases de datos en CodeIgniter.


Más información