Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: MiguelCanellas en 24 Febrero 2020, 02:59



Título: Consulta INSERT devuelva id que agregó
Publicado por: MiguelCanellas en 24 Febrero 2020, 02:59
Es decir tengo una consulta que va asignar un nuevo registro, y quiero que dicha función también devuelva el ID donde se guardó el registro...

Código
  1.        static function Add($x)
  2. {
  3. $con = Connection(BD_PASSWORD, BD_USER);
  4. $query = $con->prepare('INSERT INTO x (id) VALUES (null)');
  5. $query->execute(array(':x' => $x));
  6.  
  7.                // return id_donde_se_guardo;
  8. }
  9.  


Título: Re: Consulta INSERT devuelva id que agregó
Publicado por: MiguelCanellas en 25 Febrero 2020, 01:35
La solución:
Código
  1. $id_x = $con->lastInsertId();
  2. return $id_x;



Título: Re: Consulta INSERT devuelva id que agregó
Publicado por: engel lex en 25 Febrero 2020, 01:41
para ser sincero por odiosidad no respondí viendo cuanto te tardaba conseguirlo en google XD te has acostumbrado mucho a que te respondamos cosas simples que puedes responder tu mismo con google y php.net en cosa de minutos  ;-) ;-)


Título: Re: Consulta INSERT devuelva id que agregó
Publicado por: simorg en 25 Febrero 2020, 02:02
Si te lees las Reglas del Foro se encuentra una referencia a esto:

Citar
1. Antes de preguntar

I. Buscar

 Cualquiera que sea tu duda, alguien la ha tenido antes que tú.

La mayoría de las veces lo primero que hacemos cuando nos plantean un problema es buscar en Google. Y la mayoría de las veces se soluciona así por lo que si antes de nada buscas en Google, adelantarás trabajo a las personas que te van a responder.


Saludos.


Título: Re: Consulta INSERT devuelva id que agregó
Publicado por: MiguelCanellas en 25 Febrero 2020, 04:49
Siempre tan amable,
te agradezco por no responderme... tampoco tenes ninguna obligación
(https://i.ibb.co/Pj5KKNX/historial-PNG.png)


Título: Re: Consulta INSERT devuelva id que agregó
Publicado por: engel lex en 25 Febrero 2020, 05:27
ya vi... te recomiendo siempre buscar por el motor de sql que uses, el problema es que tu busqueda era tal vez muy compleja y el contexto te evita los apropiados resultados

por ejemplo: "retornar id insert mysqli php" te devolverá el primer resultado

tambien tienes que pensar en el contexto de quien debe devolver el resultado, es decir, imagina que fuera por query de mysql y tienes 5 usuarios simulaneos, el asunto es que puede retornar cualquiera de los 5 id... en este caso tienes que pensar que el contexto de retorno debe estar sobre la conexion usada, es decir, el motor mysql...

así mismo tambien puedes hacer un var_dump a tu clase de consulta y verás todo lo que contiene