[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-general-es
Subject:    Re: [PHP-ES] alguien ha usado ... o se =?UTF-8?B?ZsOtYSBkZSAuLi4g?=
From:       Satyam <satyam () satyam ! com ! ar>
Date:       2011-06-24 13:42:48
Message-ID: 4E049458.2010602 () satyam ! com ! ar
[Download RAW message or body]

Creo que se están enrollando demasiado con este asunto, buscando 
soluciones que consumen recursos innecesarios y/o no son 100% seguras.

mysql_insert_id es seguro.  El motor SQL hace la inserción del registro y la \
verificación del ID asignado dentro de una transacción por lo que no es posible que \
otro usuario hiciera nada entre ambas operaciones.  El motor guarda el ID generado \
dentro de los datos asociados a la conexion abierta por lo que tampoco puede \
confundirse con el de otras conexiones.

Aquellos motores (no me consta que exista alguno) que no pudieran soportar esta \
funcionalidad simplemente no proveeran una funcion de este tipo. Seria ilogico que un \
motor proveyera un id autoincremental y que no previera los mecanismos para obtener \
ese valor de forma confiable, máxime si pensamos que dicho ID es la principal forma \
de recuperar esta información.  Sería absurdo que, después de tantos años, \
nosotros fueramos a descubrir que en realidad no es confiable!

El manual de MySql explicitamente dice que LAST_INSERT_ID (la function de SQL \
invocada por mysql_insert_id) es segura: \
http://dev.mysql.com/doc/refman/5.6/en/information-functions.html#function_last-insert-id


Satyam




El 24/06/2011 11:26, David Blanco escribió:
> Hola!
> 
> El 23 de junio de 2011 20:28, Ricardo Martinez<hariseldom@gmail.com>escribió:
> 
> 
> > me gustaría saber, que pensáis de averiguar el id de un registro utilizando
> > instrucciones tipo: *
> > 
> > mysql_insert_id($link); *   ( devuelve el último id introducido )
> > 
> > en una aplicación multi-usuario, sería fiable  ¿? , alguién tiene
> > experiencia
> > con este tipo de casos  ¿?
> > 
> Yo en tiempos usaba secuencias. Creo que MySQL no las soporta pero adoDB,
> que era la librería que usábamos, las simulaba con una tabla auxiliar donde
> sólo almacenaba el valor del último ID utilizado por lo que no había
> problemas de concurrencia. Generabas un nuevo ID incrementando el valor del
> campo de la tabla auxiliar y listo.
> 
> En cualquier caso, la opción de las transacciones creo que es muy
> recomendable.
> 
> 
> Un saludo
> 
> 
> 
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 10.0.1388 / Virus Database: 1513/3722 - Release Date: 06/23/11
> 

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic