Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2022, 23:36
pilucho
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años, 2 meses
Puntos: 6
lastInsertId con PDO

Hola Grupo

Espero puedan apoyarme con su ayuda.

Tengo tres campos uno de ellos es "código" al momento de guardar la información
guarda correctamente.

Lo que me gustaría es lo siguiente, al momento de hacer un nuevo INSERT, debería tomar el Ultimo ID
y guardar en el campo "código" de la misma tabla, de esta forma: 'CASO-2022-1' el ID es auto incrementable
por lo que va aumentando, y cada vez que haga un nuevo INSERT guarda el ultimo algo así 'CASO-2022-14' etc..

ejemplo:

| nombre | codigo | fecha |
| Julio | CASO-2022-1 | 2021-12-25 01:01:01 |
| Juan | CASO-2022-2 | 2021-12-26 02:02:02 |



Código PHP:
<?php
include_once 'conn.php';

if(isset(
$_POST["operation"]))
{
    if(
$_POST["action"] == "add")
    {
        
// Esto si funciona.
        
$statement $conexion->prepare(
            
"INSERT INTO paciente (nombre, codigo, fecha)
            VALUES (:nombre, :codigo, :fecha)"
);
        
$result $statement->execute(
            array(
                
':nombre'    =>    $_POST["nombre"],
                
':codigo'    =>    $_POST["codigo"],
                
':fecha'    =>    $_POST["fecha"]
            )
        );
        
// Es una idea pero no me funciona.
        
$ultima $conexion->lastInsertId();
        
$codigo "CASO-".date("Y")."-".$ultima;        // CASO-2022-1,  CASO-2022-2, Etc..
        
$statement $conexion->prepare("UPDATE paciente SET codigo = $codigo WHERE idpaciente = '$ultima'");
        
$statement->execute();
        
$result $statement->execute(
            array(
                
':codigo'    =>    $_POST["codigo"]
            )
        );
    }
}
?>