67. Guardando los datos del Cliente API

  Guardando Datos del Cliente en la Base de Datos con PHP (Modelo MVC)

El siguiente paso en nuestro desarrollo es llevar los datos validados del cliente al modelo, que se encargará de generar la sentencia SQL para insertarlos y retornar una respuesta. ¡Vamos a implementarlo!

🔹 Paso 1: Enviar Datos al Modelo

Desde el controlador, pasamos los datos validados (nombre, apellido, email, ID cliente, llave secreta) al modelo. También incluimos las columnas created_at y updated_at con la fecha/hora actual usando date('Y-m-d H:i:s') de PHP:

php
// Controlador
$datos = [
    'nombre'       => $datos->nombre,
    'apellido'     => $datos->apellido,
    'email'        => $datos->email,
    'id_cliente'   => $datos->id_cliente,
    'llave_secreta'=> $datos->llave_secreta,
    'created_at'   => date('Y-m-d H:i:s'),
    'updated_at'   => date('Y-m-d H:i:s')
];

$crear = ModeloCliente::create('clientes', $datos);

🔹 Paso 2: Método create en el Modelo

El modelo prepara la sentencia SQL con parámetros vinculados (PDO) para seguridad contra inyecciones:

php
public static function create($tabla, $datos) {
    $sql = "INSERT INTO $tabla (nombre, apellido, email, id_cliente, llave_secreta, created_at, updated_at) 
            VALUES (:nombre, :apellido, :email, :id_cliente, :llave_secreta, :created_at, :updated_at)";
    
    $stmt = Conexion::conectar()->prepare($sql);
    
    // Vinculamos parámetros
    $stmt->bindParam(':nombre', $datos['nombre'], PDO::PARAM_STR);
    $stmt->bindParam(':apellido', $datos['apellido'], PDO::PARAM_STR);
    // ... (repetir para todos los campos)
    
    return $stmt->execute() ? 'ok' : Conexion::conectar()->errorInfo();
}

🔹 Paso 3: Respuesta del Controlador

Si el modelo retorna 'ok', enviamos un JSON con éxito y las credenciales:

php
if ($crear == 'ok') {
    echo json_encode([
        'status' => 200,
        'mensaje' => 'Registro exitoso. Tome sus credenciales:',
        'credenciales' => [
            'id_cliente' => $datos['id_cliente'],
            'llave_secreta' => $datos['llave_secreta']
    ]);
}

✅ Resultado

Los datos se guardan correctamente en la tabla clientes, incluyendo fechas automáticas:

sql
| nombre      | apellido | email           | id_cliente | llave_secreta | created_at          | updated_at          |
|-------------|----------|-----------------|------------|---------------|---------------------|---------------------|
| Arturo      | Gomez    | arturo@mail.com | CL123      | abc123        | 2025-08-19 14:30:00 | 2025-08-19 14:30:00 |

Próximo paso: ¡Implementaremos la API RESTful para gestionar cursos! 🛠️

¿Te gustaría ver el código completo o tienes dudas sobre algún paso? ¡Comenta! 👇

#PHP #MVC #PDO #Backend #DesarrolloWeb


Comentarios

Entradas más populares de este blog

token

¿Qué es un token y cómo se utiliza en una API?

Generación de Credenciales API