-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cliente.php
95 lines (83 loc) · 2.57 KB
/
Cliente.php
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
include 'Conexion.php';
class Cliente extends Conexion
{
public $correo;
public $nombre;
public $edad;
// Create
public function create()
{
$pdo = $this->conectar();
$sql = "INSERT
INTO
clientes
(correo, nombre, edad)
VALUES
(?, ?, ?)";
// Se puede obviar el bindParam() y poner dentro del execute([]), dentro de los corchetes, las variables que van a reemplazar a los ? de la $sql. Y también se lo puede poner todo en una sola línea o separarlo.
// 1 sola línea conocido como "método de encadenamiento". No hace falta guardar nada en una variable como si lo hacemos en 2 lineas con $stmt.
// $this->con->prepare($sql)->execute([$this->correo, $this->nombre, $this->edad]);
// 2 líneas OPCION A ELEGIR!
$stmt = $pdo->prepare($sql);
$stmt->execute([$this->correo, $this->nombre, $this->edad]);
}
// Read
public static function all()
{
$conexion = new Conexion();
$pdo = $conexion->conectar();
$sql = "SELECT
*
FROM
clientes
";
$stmt = $pdo->prepare($sql);
$stmt->execute();
return $resp = $stmt->fetchAll(PDO::FETCH_CLASS, __CLASS__);
}
// Update
public function update()
{
$pdo = $this->conectar();
$sql = "UPDATE
clientes
SET
nombre = ?,
edad = ?
WHERE
correo = ?
";
$stmt = $pdo->prepare($sql);
$stmt->execute([$this->nombre, $this->edad, $this->correo]);
}
// Delete
public function delete()
{
$pdo = $this->conectar();
$sql = "DELETE
FROM
clientes
WHERE
correo = ?
";
$stmt = $pdo->prepare($sql);
$stmt->execute([$this->correo]);
}
// Obtener un cliente por su correo
public static function getByEmail($correo)
{
$conexion = new Conexion();
$pdo = $conexion->conectar();
$sql = "SELECT
*
FROM
clientes
WHERE
correo = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$correo]);
// Retorno un obj de la clase Cliente con todas las columnas de la tabla como sus propiedades.
return $resp = $stmt->fetchObject(__CLASS__);
}
}