Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2008, 20:12
Avatar de argy
argy
 
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 5 meses
Puntos: 18
recuperar el último ID insertado

estoy haciendo pruebas con la clase mysqli, estilo orientado a objetos, además utilizo procedimientos almacenados, aquí les muestro un ejemplo muy sencillo.
tbl_regions
Cita:
CREATE TABLE `tbl_regions` (
`regi_id` int(3) NOT NULL AUTO_INCREMENT,
`regi_name` varchar(40) NOT NULL,
PRIMARY KEY (`regi_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
sp_regions_insert
Cita:
Delimiter //
CREATE PROCEDURE `sp_regions_insert`(IN name VARCHAR(40))
BEGIN
INSERT INTO tbl_regions (regi_name) VALUES(name);
END
//;
Luego para utilizar este procedimiento almacenado desde php hago lo siguiente
insertar_region.php
Cita:
<?php
$mysqli= new mysqli("localhost","root","","pruebas");
if (mysqli_connect_errno())
{
echo "No se pudo Conectar con la Base de Datos";
exit();
}
$saber_si_inserto=$mysqli->query('CALL sp_regions_insert("region a insertar")');
if(!empty($saber_si_inserto))
{
echo "fue correcto";
echo “el ultimo id insertado es”. $mysqli->insert_id;
echo “registros afectados”. $mysqli->affected_rows;
}
else
{
echo "ERROR: no se pudo insertar";
}
$mysqli->close();
?>
Bueno mi pregunta si hay alguna otra forma de poder obtener el último id(por cierto es auto increment y PK) insertado, ya que la propiedad insert_id de la clase mysqli no funciona(siempre me devuelven 0 pero si inserta en mi tabla) cuando utilizo procedimientos almacenados.