1 | <?php |
2 | |
3 | class Bd |
4 | { |
5 | |
6 | private static ?PDO $pdo = null; |
7 | |
8 | static function pdo(): PDO |
9 | { |
10 | if (self::$pdo === null) { |
11 | self::$pdo = new PDO( |
12 | // cadena de conexión |
13 | "sqlite:sincronizacion.db", |
14 | // usuario |
15 | null, |
16 | // contraseña |
17 | null, |
18 | // Opciones: pdos no persistentes y lanza excepciones. |
19 | [PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] |
20 | ); |
21 | |
22 | self::$pdo->exec( |
23 | 'CREATE TABLE IF NOT EXISTS PASATIEMPO ( |
24 | PAS_ID TEXT NOT NULL, |
25 | PAS_NOMBRE TEXT NOT NULL, |
26 | PAS_MODIFICACION INTEGER NOT NULL, |
27 | PAS_ELIMINADO INTEGER NOT NULL, |
28 | CONSTRAINT PAS_PK |
29 | PRIMARY KEY(PAS_ID), |
30 | CONSTRAINT PAS_ID_NV |
31 | CHECK(LENGTH(PAS_ID) > 0), |
32 | CONSTRAINT PAS_NOM_NV |
33 | CHECK(LENGTH(PAS_NOMBRE) > 0) |
34 | )' |
35 | ); |
36 | } |
37 | |
38 | return self::$pdo; |
39 | } |
40 | } |
41 |
1 | <?php |
2 | |
3 | require_once __DIR__ . "/../../lib/php/validaNombre.php"; |
4 | require_once __DIR__ . "/../../lib/php/insert.php"; |
5 | require_once __DIR__ . "/Bd.php"; |
6 | require_once __DIR__ . "/../modelo/TABLA_PASATIEMPO.php"; |
7 | require_once __DIR__ . "/../modelo/validaId.php"; |
8 | |
9 | /** |
10 | * @param array{ |
11 | * PAS_ID: string, |
12 | * PAS_NOMBRE: string, |
13 | * PAS_MODIFICACION: int, |
14 | * PAS_ELIMINADO: int |
15 | * } $modelo |
16 | */ |
17 | function pasatiempoAgrega(array $modelo) |
18 | { |
19 | validaId($modelo[PAS_ID]); |
20 | validaNombre($modelo[PAS_NOMBRE]); |
21 | insert(pdo: Bd::pdo(), into: PASATIEMPO, values: $modelo); |
22 | } |
23 |
1 | <?php |
2 | |
3 | require_once __DIR__ . "/../../lib/php/selectFirst.php"; |
4 | require_once __DIR__ . "/Bd.php"; |
5 | require_once __DIR__ . "/../modelo/TABLA_PASATIEMPO.php"; |
6 | |
7 | /** |
8 | * @return false | array{ |
9 | * PAS_ID: string, |
10 | * PAS_NOMBRE: string, |
11 | * PAS_MODIFICACION: int, |
12 | * PAS_ELIMINADO: int |
13 | * } |
14 | */ |
15 | function pasatiempoBusca(string $id): false|array |
16 | { |
17 | return selectFirst( |
18 | pdo: Bd::pdo(), |
19 | from: PASATIEMPO, |
20 | where: [PAS_ID => $id] |
21 | ); |
22 | } |
23 |
1 | <?php |
2 | |
3 | require_once __DIR__ . "/../../lib/php/select.php"; |
4 | require_once __DIR__ . "/Bd.php"; |
5 | require_once __DIR__ . "/../modelo/TABLA_PASATIEMPO.php"; |
6 | |
7 | /** |
8 | * @return array{ |
9 | * PAS_ID: string, |
10 | * PAS_NOMBRE: string, |
11 | * PAS_MODIFICACION: int, |
12 | * PAS_ELIMINADO: int |
13 | * }[] |
14 | */ |
15 | function pasatiempoConsultaNoEliminados() |
16 | { |
17 | return select( |
18 | pdo: Bd::pdo(), |
19 | from: PASATIEMPO, |
20 | where: [PAS_ELIMINADO => 0], |
21 | orderBy: PAS_NOMBRE |
22 | ); |
23 | } |
24 |
1 | <?php |
2 | |
3 | require_once __DIR__ . "/../../lib/php/validaNombre.php"; |
4 | require_once __DIR__ . "/../../lib/php/update.php"; |
5 | require_once __DIR__ . "/Bd.php"; |
6 | require_once __DIR__ . "/../modelo/TABLA_PASATIEMPO.php"; |
7 | require_once __DIR__ . "/../modelo/validaId.php"; |
8 | |
9 | /** |
10 | * @param array{ |
11 | * PAS_ID: string, |
12 | * PAS_NOMBRE: string, |
13 | * PAS_MODIFICACION: int, |
14 | * PAS_ELIMINADO: int |
15 | * } $modelo |
16 | */ |
17 | function pasatiempoModifica(array $modelo) |
18 | { |
19 | validaId($modelo[PAS_ID]); |
20 | validaNombre($modelo[PAS_NOMBRE]); |
21 | update( |
22 | pdo: Bd::pdo(), |
23 | table: PASATIEMPO, |
24 | set: $modelo, |
25 | where: [PAS_ID => $modelo[PAS_ID]] |
26 | ); |
27 | } |
28 |