Sólo enfrentado siguiente situación
tiene el archivo post.php
que incluye otro archivo (como insert.php
).
código entero para insertar en MySQL se encuentra en insert.php
En insert.php
es código $id_of_inserted_row = $db->lastInsertId();
Luego, en insert.php
es echo $id_of_inserted_row;
que muestra valor correcto.
Pero echo $id_of_inserted_row;
en post.php
muestra un valor incorrecto (como veo, muestra 7 números menos que el valor real). No entiendo por qué, solo necesito tomar en cuenta.
actualización
Lo sentimos, escrito anteriormente fue porque se inserta en dos mesas y por error se utiliza la misma $id_of_inserted_row = $db->lastInsertId();
para ambas tablas.
Así que tengo la misma conclusión que en otras respuestas: lastInsertId()
obtiene la identificación de la última fila insertada.
Situación enfrentada. Inserté 2 filas en mysql. En tal caso, veo que lastInsertId() es id de la primera fila insertada (no la última). No entiendo por qué ... respuesta Encontrado https://stackoverflow.com/a/12574752/2118559
Importante Si inserta varias filas utilizando una única instrucción INSERT, LAST_INSERT_ID() devuelve el valor generado por sólo la primera fila insertada. La razón para esto es permitir reproducir fácilmente la misma instrucción INSERT contra otro servidor.
No, no habrá conflicto. La id de inserción depende de la conexión, y cada carga de página establecerá una nueva conexión. –
Depende de la base de datos subyacente. Si es mysql, PDO simplemente llamará a la función API mysql last_insert_id(), que garantiza que el ID devuelto es el ID generado por la última consulta de inserción realizada por su conexión PDO. –
posible duplicado de [LAST_INSERT_ID() cómo funciona en el entorno de usuarios múltiples] (http://stackoverflow.com/questions/5835677/last-insert-id-how-it-works-at-multi-users-environment) –