PHP - Como usar lastInsertId()

 
Vista:
Imágen de perfil de Jorge
Val: 29
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como usar lastInsertId()

Publicado por Jorge (16 intervenciones) el 30/08/2017 15:48:44
Buenos días, quisiera que me ayudar a poder usar la funcion de PDO::lastInsertId(), he consultado la documentación oficial pero no me ha quedado claro como adaptarlo en mi caso ya que en la doc crean la conexión en el mismo archivo y la colocan en una variable y en mi caso no lo estoy usando así, agradecería la ayuda

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$stmt=Conexion::conectar()->prepare("INSERT INTO ofertas_cafe(id_usuario,nombre_muestra, codigo_muestra, tamano_lote, variedad, origen, proceso, certificaciones, altitud, perfil_taza, puntaje_scc, descripcion, id_status, img_perfil_cafe, img_portada_cafe) VALUES (:id,:nombre,:codigo,:tamano,:variedad,:origen,:proceso,:certificaciones,:altitud,:perfil,:puntaje,:descripcion,:status,:imgpc,:imgpoc)");
 
	$status="1";
	$img="views/imagesu/fotodefecto.jpg";
	$imgpot="views/imagest/portada/defecto.png";
 
	$stmt->bindParam(":id",$datosModel['id'], PDO::PARAM_INT);
	$stmt->bindParam(":nombre",$datosModel['nombre'], PDO::PARAM_STR);
	$stmt->bindParam(":codigo",$datosModel['codigo'], PDO::PARAM_STR);
	$stmt->bindParam(":tamano",$datosModel['tamano'], PDO::PARAM_STR);
	$stmt->bindParam(":variedad",$datosModel['variedad'], PDO::PARAM_STR);
	$stmt->bindParam(":origen",$datosModel['origen'], PDO::PARAM_STR);
	$stmt->bindParam(":proceso",$datosModel['proceso'], PDO::PARAM_STR);
	$stmt->bindParam(":certificaciones",$datosModel['certificacion'], PDO::PARAM_STR);
	$stmt->bindParam(":altitud",$datosModel['altitud'], PDO::PARAM_STR);
	$stmt->bindParam(":perfil",$datosModel['perfil'], PDO::PARAM_STR);
	$stmt->bindParam(":puntaje",$datosModel['scc'], PDO::PARAM_STR);
	$stmt->bindParam(":descripcion",$datosModel['descripcion'], PDO::PARAM_STR);
	$stmt->bindParam(":status",$status, PDO::PARAM_INT);
	$stmt->bindParam(":imgpc",$img, PDO::PARAM_STR);
	$stmt->bindParam(":imgpoc",$imgpot, PDO::PARAM_STR);
 
	if($stmt->execute()){
		return "success";
	}
 
	else{
		return "error";
	}
	$stmt->close();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de [abZeroX]
Val: 575
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Como usar lastInsertId()

Publicado por [abZeroX] (157 intervenciones) el 31/08/2017 04:52:49
Hola, por lo que puede ver en el código, el método
1
Conexion::conectar()
devuelve una instancia de la clase PDO por lo que podrias hacer lo siguiente :

1
2
3
4
5
6
7
$connection = Conexion::conectar();
$connection->prepare(...)
...
..
.
// obtienes el ID
echo $connection->lastInsertId();

Recuerda que si estas usando transacciones debes obtener el ID antes de realizar el commit.

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jorge
Val: 29
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Como usar lastInsertId()

Publicado por Jorge (16 intervenciones) el 31/08/2017 15:43:32
Muchas gracias, me sirvió perfecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha aumentado su posición en 14 puestos en PHP (en relación al último mes)
Gráfica de PHP

Como usar lastInsertId()

Publicado por nicolas (13 intervenciones) el 18/09/2021 00:17:12
Con esta sentencia, no es riesgoso en una web de mucho trafico obtengamos un ID equivocado? yo he intentado utilizar (INSERT INTO ...... ; SELECT LAST_INSERT_ID();), pero no puedo obtenerlo, creo que seria mas "estable".. alguna idea con eso??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar