Hola pateketrueke, gracias por la sugerencia. Como expliqué en mi último post,
mysql_insert_id() funciona sobre el último ID generado, desde una sentencia SQL de inserción simple: (Suponiendo, si mi tabla PERSONAS tiene el auto incremento de valor 2)
Código PHP:
$sql = "INSERT INTO personas(Apellidos, Nombres) VALUES ('DIAZ', 'Lourdes')";
mysql_query($sql, $conx);
$ultimo = mysql_insert_id();
//Me devuelve : 3 ...
Hasta ahí realiza bien su función, capturo el ID siempre y cuando sea una inserción simple. Ahora para una consulta de inserción múltiple:
Código PHP:
$sql = "INSERT INTO personas(Apellidos, Nombres) VALUES ('DIAZ', 'Lourdes'), ('ARANA', 'José'), ('AREVALO', 'Cinthya'), ('ANGELES', 'Aleeda')";
mysql_query($sql, $conx);
$ultimo = mysql_insert_id();
//Me devuelve: 6 ...
En este ejemplo me devuelve
6, pero quisiera recuperar el resto (Es decir:
3, 4, 5), sin tener que recurrir a la consulta de inserción simple. (Es decir, uno por uno) Por ahora, mi programación tiene esa funcionalidad de uno por uno.
Si es posible, me gustaría alguna idea de como hacerlo, por ahora estoy desarrollando una alternativa que se acerque a lo que busco.
Nota:
LAST_INSERT_ID() (
MySQL) al parecer trabaja bien con ID's en campos del tipo
BIGINT, ya que con
mysql_insert_id() (
API PHP) puede capturar ID's en campos que no superen el límite de un
INT, ya que si lo sobrepasa lo transformaría en datos del tipo
LONG, y pueden producirse errores al momento de buscar datos relacionados con el ID generado. Si alguien puede confirmar esta información, estaré muy agradecido.
Saludos