Cita:
Iniciado por x_women hola y gracias cluster por el link, ya lei y no seria lo mismo usar lock table?.
bueno aunque utilice transacciones no entiendo en que soluciona mi problema mi duda sigue como obtengo mi ultimo id insertado en una tabla determinada, si por lo que entendi el mysql_insert_id() devuelve el ultimo id insertado en la base de datos y las transacciones bloquean la tabla no la base de datos completa. Imaginense que se abra otra conexion y inserten datos en otra tabla...
Realizar una transacción (BEGIN - COMMIT) vs a bloquear la tabla ("Lock table") la ventaja que tiene es sobre que se puede deshacer la operación (ROLLBACK) si hay algún problema (por ejemplo que no se pueda ejecutar tu INSERT .. o cualquier otra cosa).
Cita: mi problema mi duda sigue como obtengo mi ultimo id insertado en una tabla determinada,
El uso de esa función ya sea de PHP o de SQL directo se debe usar inmediatamente despues de un INSERT que afecte a una tabla (y sólo una que es lo que haces por sentencia INSERT de SQL) con un campo autoincremental .. Por ende el "ultimo ID" que obtienes es el de la tabla que usó tu INSERT anterior no el de otras tablas interactuando en ese instante.
La forma de uso en SQL sería:
http://dev.mysql.com/doc/refman/5.0/...unique-id.html
No puedes ni debes usar esta función para obtener tu ID último generado tras un SELECT u otra función SQL .. en ese caso tendrías que recurrir a una función tipo MAX() de SQL en una consulta SQL de tipo SELECT y basandote en que usas un campo tipo autoincremental ...
Un saludo,