| Por: Jose Corbacho | | 13/4/2004
|
Para evitar posibles problemas de concurrencia siempre es recomendable antes de un insert o update realizar mysql_query("LOCK TABLES mitabla WRITE",$link) y una vez hecha la consulta desbloquear las tablas mysql_query("UNLOCK TABLES",$link)
Un saludo
En la descripción de la funcion se especifica claramente que devuelve el valor del ULTIMO ID INSERTADO.
Que sucede si al mismo tiempo se insertan dos IDS? que garantiza q el q estemos recibiendo es el q le corresponde a un usuario en particular? podría recibir el de otra conexion?
| Por: Jesús Genicio | | 30/11/2004
|
Estimados amigos:
De seguro soy un poco burro. Estoy usando esta función para vinvular una tuplas a otra, y me daba error.
al leer el artículo, me di cuenta de que estaba haciendo:
$resultado=mysql_query($sql,$link);
$id= mysql_insert_id($resultado);
cuando debí hacer
$resultado=mysql_query($sql,$link);
$id= mysql_insert_id($link);
Muchas gracias amigos.
| Por: Alex Tierno | | 10/12/2004
|
En principio, utilizando el método LOCK/UNLOCK no hay problema de confusión de id's siempre y cuando se haga la consulta "mysql_insert_id($link)" antes del UNLOCK
Leyendo un poco la documentación de la función mysql_insert_id() he sacado la conclusión de que no hay problemas con la concurrencia porque dicha función debe recibir el identificador de la conexión a la base de datos y devuelve el identificador de la última inserción producida en esa conexión. El identificador devuelto es el valor de un campo del tipo AUTO_INCREMENT o cero si no existe un campo con estas características.
PD: Como estoy aprendiendo les diré que no me hagan mucho caso, pero eso me ha parecido que cuenta la documentación. Espero haber leído bien.
Si la instrucción mysql_insert_id me devuelve el ultimo registro guardado, que pasa si yo estoy digitando junto con otros usuarios en la misma aplicación?
Lo que pasa es que A CADA USUARIO le debe traer el ultimo registro insertado por el para incrementar un campo de ese usuario?
Hola.
A la función mysql_insert_id() se le pasa como parámtero la ID de la conexión a la base de datos. Esta ID es única para cada conexión (si simultáneamente se estan ejecutando dos script que tienen realizada una conexión a MySQL, cada uno tendrá una ID única), por tanto, lo que devuelve la función mysql_insert_id() sólo es de nuestra conexión.
Espero que les sirva.
Un saludo.
hola:
hice el ejemplo pero con mas campos y tablas diferentes, revise cada punto que tocan ustedes respecto a los posibles errores, todo indica que esta bien, pero segun el resultado es "la insercion no se realizo" no se cual puede ser el problema, lo que deseo es que no me aprezaca este comentario y que realmente se guarde ya intenete muchas veces y no lo consigo.... tengo un campo autoincrementable.
que sucede si en ese momento se insertan concurrente mente varios registros a la misma tabla
gracias
repeto a la conxxion Por: rubi | | 05/11/2009
|
a mi me manda dierecto a q no se pudo enviar infomacion por que com lo evito