comillas simples

18 views
Skip to first unread message

walter salazar

unread,
Sep 3, 2015, 8:55:11 AM9/3/15
to kum...@googlegroups.com
Buen dia. estoy usando kumbia beta 2 y postgresql 9. Al momento de insertar un registro en una tabla que tiene unos de los campos con comillas simples, por ejemplo O'reily, el ActiveRecord me da un error, referido a que la cadena en cuestion quedó mal entrecomillada (no quedaron bien los caracteres de escape). Por ejemplo el error dice:

<em>'INSERT INTO autor (nombre)VALUES ('O\'riley')'</em> (0)
En el archivo /var/www/html/gasis/core/libs/db/adapters/pgsql.php en la línea:
159
y mi contrador es muy simple

if (Input::hasPost("autor")) {
            $o = new Orden(Input::post("autor","trim","addslashes"));
            if ($o->create()) {
                return Router::redirect();
            }
        }

Por favor. si alguien esta usando las mismas version que yo, pruebe algo usando comillas simples. Las comillas doble no causan problema. Desde ya Gracias.

Henry Stivens

unread,
Sep 3, 2015, 9:55:04 AM9/3/15
to kum...@googlegroups.com
Hola,

La verdad creo que ese "truco" no se puede usar o por lo menos no lo conocía.


Input::post("autor","trim","addslashes")

Intenta separandolo:

$autor = addslashes(trim(Input::post("autor")));

O mejor aun, añade esa lógica al modelo:

class Orden {
  //Callback llamado antes de insertar un registro
  public class before_create(){
    $this->autor = addslashes(trim($this->autor));
  }
  //Callback llamado antes de actualizar un registro
  public class before_update(){
    $this->autor = addslashes(trim($this->autor));
  }
.
.
.
}

Y el controlador lo dejas:

if (Input::hasPost("autor")) {
            $o = new Orden(Input::post("autor"));

--
Viva KumbiaPHP Framework!
http://www.kumbiaphp.com/
Ha recibido este mensaje porque está suscrito a Grupo "KumbiaPHP Framework" de Grupos de Google.
Para obtener más opciones, visita este grupo en http://groups.google.com/group/kumbia?hl=es.
---
Has recibido este mensaje porque estás suscrito al grupo "KumbiaPHP Framework" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a kumbia+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Henry Stivens Adarme Muñoz
henry....@gmail.com
3172210555

surskate gmail

unread,
Sep 3, 2015, 10:11:45 AM9/3/15
to kum...@googlegroups.com
Buenas, puedes utilizar la clase Filter http://wiki.kumbiaphp.com/KumbiaPHP_Framework_Versi%C3%B3n_1.0_Spirit#Filter

Por ejemplo puedes en el model utilizar el callback before_save() y hacer

public function before_save(){
    $this->autor = Filter::get($this->autor, 'striptags', 'trim', 'addslashes');
}

También puedes usar la función Filter::get_array() si querés filtrar un array de golpe o tambien Filter::get_object() para hacerlo sobre un objeto.

Saludos

walter salazar

unread,
Sep 3, 2015, 10:12:04 AM9/3/15
to kum...@googlegroups.com

Hola. Gracias Por responder. Manualmente lo puedo resolver, pero pensaba que el activerecord ya se encargaba de eso.
Manualmente puedo reemplazar una comilla simple por dos comillas. esta es una forma de escapar las comillas simples en posgtres.
Gracias por tu respuesta.
Reply all
Reply to author
Forward
0 new messages