PHP Classes

Insert w/o set key

Recommend this page to a friend!

      Liber ORM  >  All threads  >  Insert w/o set key  >  (Un) Subscribe thread alerts  
Subject:Insert w/o set key
Summary:insert data in table with serial primary key
Messages:4
Author:d m
Date:2011-03-07 14:22:09
Update:2011-03-07 16:39:32
 

  1. Insert w/o set key   Reply   Report abuse  
Picture of d m d m - 2011-03-07 14:22:10
Hola, me gustaria saber si tienes ya implementado el insert sobre una tabla con llave serial, ya que no se requiere definir en el insert este campo.

Gracias.

  2. Re: Insert w/o set key   Reply   Report abuse  
Picture of Liber Fernández Gribov Liber Fernández Gribov - 2011-03-07 16:30:18 - In reply to message 1 from d m
Hola dm, un placer para mi que hayas elegido LiberORM para utilizarlo en tu proyecto.

Si entiendo bien, lo que queres hacer es mapear un objeto con una tabla que tiene un campo id, como un int con autoincrement.

En ese caso, podés usar el paquete tal cual está, si en el ejemplo que subi, la tabla DUMMY tuviera el campo id, como int con autoincrement. El ejemplo funcionaría correctamente de cualquier forma, fuese cual fuese el valor que le dieras a ese campo. Por ejemplo:

Si la secuencia tuviera valor 10 y ejecutas este código:

$dummy = new Dummy(0, "A","B","C","D");
$driver = new MySQL_Driver();
$driver->set_debug(true);
ORM::set_driver($driver);
ORM::insert($dummy);

$dummy quedaría insertado con valor 10.

Lo que no está implementado en el ejemplo es, luego de la inserción, setearle a $dummy el valor de la última secuencia utilizada. Pero se puede hacer facilmente redefiniendo la función insert de Dummy_Mapper usando la función:

mysql_last_id()

Si tenés problemas avisame.

Saludos,
Liber

  3. Re: Insert w/o set key   Reply   Report abuse  
Picture of Liber Fernández Gribov Liber Fernández Gribov - 2011-03-07 16:35:36 - In reply to message 2 from Liber Fernández Gribov
Si lo pensamos con detenimiento, lo correcto es agregar una función abstracta en Driver y definirla para cada driver, posteriormente usarla en el mapper según corresponda.

Voy a anotar esto para agregarlo en el TODO.

Saludos,
Liber

  4. Re: Insert w/o set key   Reply   Report abuse  
Picture of Liber Fernández Gribov Liber Fernández Gribov - 2011-03-07 16:39:32 - In reply to message 3 from Liber Fernández Gribov
El nombre correcto de la función es:

mysql_insert_id

Disculpas,
Liber