Ver Mensaje Individual
  #6 (permalink)  
Antiguo 31/05/2005, 12:31
Avatar de Neuron_376
Neuron_376
 
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 18 años, 11 meses
Puntos: 2
Hola!

La pregunta que hiciste:

----
Así como comentas podría darse problemas de que dos personas inserten un mismo albarán casi en el mismo momento y diera un id que no fuera el nuestro no?
----

La verdad es que con ambos metodos, como tu lo intesntas y con mysql_insert_id(); se puede dar el caso, lo que necesitas es usar TRANS o en su defecto y por compatibilidad con MySql de versiones anteriores, usas:

Lock Tables
sentencias
Unlock Tables

Asi aseguras que cuando tu entras a este script nadie mas puede entrar y siempre obtienes el script correcto, para esto necesitas algo como

strSql1 = "LOCK TABLES Tabla WRITE;"
strSql2 = "insert........."
strSql3 = "select lasID"
strSql4 = "UNLOCK TABLES;"

mysql_query(strSql1)
mysql_query(strSql2)
mysql_query(strSql3)
mysql_query(strSql4)

Funciona correctamente, cuando estuve con este problema lo investigue mucho y desarrolle ese procedimiento, hasta ahorita ha sido muy seguro y sin errores, claro, TRANS viene a ser la mejor opcion y la unica 100% segura, pero esta disponible en las ultimas versiones de MySql y la mayoria de los hosting rentados por ejemplo no la soportan, entonces por eso sigo con el metodo de Lock Tables

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com