php - returns - ¿Mysqli_insert_id() obtiene el registro de todo el servidor o del mismo usuario?
mysqli_query (2)
@ZainFarooq Antes de ejecutar la función mysqli_insert_id () hay algo llamado función mysqli_connect () en el php para conectarse al servidor y luego seleccionar la base de datos para buscar registros.
En el caso de la función mysqli_insert_id () sí, es completamente seguro de usar y devuelve el ID generado por una consulta en una tabla con una columna que tiene el atributo AUTO_INCREMENT. Si la última consulta no fue una instrucción INSERT o UPDATE o si la tabla modificada no tiene una columna con el atributo AUTO_INCREMENT, esta función devolverá cero.
Tengo pregunta de mysql que mysqli_insert_id()
devuelve el registro del servidor general o del usuario específico que ha insertado ese id. Porque si regresa desde general, entonces no será seguro usar esta función
El comentario de @daan anterior es totalmente erróneo. insert_id()
devuelve la ID colocada en un campo auto_increment de la última consulta de insert
que realizó la conexión que ejecuta la consulta insert_id ().
No devuelve el ID más grande en la tabla, no devuelve el ID creado por alguna otra conexión, no devuelve el ID creado por otro usuario.
Literalmente, es la última ID que USTED creó con la ÚLTIMA inserción que realizó.
Eso significa que es 100% confiable realizar una inserción, obtener la ID creada a través de last_insert_id()
y luego usar esa ID en otras consultas para crear registros padre / hijo.
Pero tenga en cuenta que insert_id()
solo devuelve UN valor de identificación. Si realiza una inserción de varios valores, solo obtendrá la ID del último valor establecido, por ejemplo
INSERT INTO sometable (x, y) VALUES (1,2), (2,3)
todavía realiza dos inserciones internamente, y solo obtendría la identificación para la tupla 2,3
, no la 1,2
.
Además, no hay memoria para todas las consultas anteriores:
INSERT ... // query #1
INSERT ... // query #2
SET id = last_insert_id();
solo obtendrá la ID creada por la consulta n. ° 2 y la ID de la consulta n. ° 1 se "perderá".