Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/09/2013, 13:42
Avatar de h2swider
h2swider
 
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 16 años, 9 meses
Puntos: 194
Respuesta: Problema al hacer un insert doble

Cita:
Iniciado por loncho_rojas Ver Mensaje
Deberías aportar algo referente al problema, la librería MYSQLi o PDO, o POSTGRESql da igual, si no sabes cómo resolver el problema de manera lógica... la sintaxis SQL no se cambia porque PHP decide simplificar o modernizar sus librerías... la gente confunde librería de PHP con lenguaje SQL... no confundas a los posteadores con tus aclaraciones.
Disculpa loncho_rojas, pero estas comparando peras con manzanas.

PDO define una interface para poder abstraerte de la Base que estés utilizando ( Contiene los drivers necesarios para la DB que desees), mientras que Mysql o Mysqli son meras librerias de conexión, nunca hable de lenguajes.

Te invito a que nos expliques como resolver de "manera lógica" una transaccion con la libreria Mysql, por como lo expones seguramente sera mucho mas optimo y facil que utilizar begind y end transaction de PDO o Adodb...

La solución que planteas rescatando el max(id) es rapida, pero arriesgada y poco confiable, puedes tener problemas de concurrencia y nunca enterarte.
Por si no se entiende, cuando haces max(id) no hay nada que te este atando al insert anterior realmente, y no puedes estar seguro si el ultimo es realmente el que quieres, o es un insert provocado por otro usuario, pudiendo otorgarle ese id a 2 usuario al mismo tiempo. De ahí surja la necesidad de "atar" las consultas con una transacción, y es la forma correcta de hacerlo.

Es momento de dar consejos y soluciones de calidad, y parar de contestar respuestas pobres, que no ayudan a mejorar la calidad del código en general, ni aportan mucho a la comunidad. Reitero, se que lo que propongo no es lo mas sencillo, pero es una de las maneras Correctas de hacerlo.
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives

Última edición por h2swider; 10/09/2013 a las 13:51