Re: [PHP-ES] alguien ha usado ... o se fía de ... ( jueves de debate ;)

[email protected] (Satyam)
Newsgroups php.general.es
Message-ID <[email protected]>
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<[email protected]>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
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.