Re: [PHP-ES] alguien ha usado ... o se fía de ... ( jueves de debate ;)
[email protected] (Ivan Rico)
| Newsgroups | php.general.es |
|---|---|
| Message-ID | <9894643.81308930704056.JavaMail.rafael@desarrollo> |
totalmente de acuerdo y eso fué lo que puse en mi mensaje anterior en resumen si quieren hacer las cosas eficaces y eficientes utilicen mysql_insert_id() cualquier otra solución seguramente pegara en desempeño y seguridad de forma negativa saludos ----- Mensaje original ----- De: "Satyam" <[email protected]> Para: [email protected] Enviados: Viernes, 24 de Junio 2011 8:42:48 GMT -06:00 Guadalajara / Ciudad de México / Monterrey Asunto: Re: [PHP-ES] alguien ha usado ... o se fía de ... ( jueves de debate ;) 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 > -- PHP Spanish Localization Talk Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php