[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