tag obtener loop get_the_tags get_the codex actual php pdo

php - obtener - DOP Última ID de inserción siempre la correcta?



tags wordpress codex (3)

Tengo el siguiente código:

<? $query =$db->prepare("INSERT INTO a_table (id, a_field) VALUES ('''', (:a_field)"); $query->bindParam(":a_field", $a_value); $query->execute(); $last_id = $db->lastInsertId(''a_table''); ?>

Lo que quiero preguntar es esto. Imagínese cuando dos personas cargan la página exactamente al mismo tiempo, ¿es posible que la consulta de las otras personas se inserte antes de que se recupere la última ID, mezclando las ID?


Acabo de enfrentar la siguiente situación.

Tener el archivo post.php que incluye otro archivo (como insert.php ).

El código completo para insertar en mysql se encuentra en insert.php

En insert.php está el código $id_of_inserted_row = $db->lastInsertId();

Luego, en insert.php está echo $id_of_inserted_row; que muestra el 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 hay que tener en cuenta.

Actualizar

Lo sentimos, lo anterior se escribió porque se insertó en dos tablas y se usó por error el mismo $id_of_inserted_row = $db->lastInsertId(); para ambas mesas.

Así que tengo la misma conclusión que en otras respuestas: lastInsertId() obtiene el ID de la última fila insertada.

Se enfrentó a la situación. Inserté 2 filas en mysql. En tal caso, veo que lastInsertId () es el id de la primera fila insertada (no la última). No entiendo por qué ... Encontré la respuesta https://.com/a/12574752/2118559

Importante: si inserta varias filas con una sola instrucción INSERT, LAST_INSERT_ID () devuelve el valor generado solo para la primera fila insertada. El motivo de esto es permitir reproducir fácilmente la misma instrucción INSERT en algún otro servidor.


No, esta situación es imposible. El método $ db-> lastInsertId () devuelve el último id insertado para esta conexión DB. En otra página habrá otra conexión y otra última identificación insertada.


PDO le devolverá el último ID insertado por la conexión de base de datos activa actual.