Buen día, tengo un problema al momento de registrar, uso PDO para realizar este proceso.
Me registra sin problemas llenando en la base de datos, pero quiero que al guardarse me muestre el ID que creo automaticamente, uso lastInsertId() pero me muestra 0 en cada registro. Estoy utilizando $_SESSION['message'] por lo que no me deja ponerlo en la parte de abajo ya que me da error. Aquí el código:
include_once('conexion.php');
if(isset($_POST['agregar'])){
$database = new Connection();
$db = $database->open();
try{
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$stmt = $db->prepare("INSERT INTO alumnos (Nombre_Alumno, Email, Telefono, Ciudad) VALUES (:nombre, :email, :telefono, :ciudad)");
$id = $db->lastInsertId();
$_SESSION['message'] = ( $stmt->execute(array(':nombre' => $_POST['nombre'], ':email' => $_POST['email'], ':telefono' => $_POST['telefono'], ':ciudad' => $_POST['ciudad'])) ) ? "Se ha agregado al alumno <b>$nombre</b> con el Email: <b>$email</b> <br> y el ID# <b>$id</b>" : 'Algo salió mal. No se puede agregar al alumno, verifique los datos.';
}
catch(PDOException $e){
$_SESSION['message'] = $e->getMessage();
}
$database->close();
}
else{
$_SESSION['message'] = 'Llene el formulario';
}
header('location: index.php');
Se que debe estar después de "$stmt->execute" pero si lo pongo antes o después del "?" me da error con el ";", no me sale como debería ¿Qué puedo hacer en este caso?