Creació de la BD i la taula

De Wiki personal d'en Guillem Serrat
La revisió el 00:40, 15 des 2025 per Guseba (discussió | contribucions) (Es crea la pàgina amb «== Creació de la BD i de la taula amb un sol fitxer == Per aquesta practica s'ha desenvolupat un unic fitxer PHP que realitza dos connexions a MariaDB. La primera per crear la BD i la segona per crear-hi la taula. La BD s'anomenarà preferencies i tindrà una codificació de caracters UTF-8. L'usuari IOT tindrà permisos de lectura i escriptura mentre que l'usuari convidat únicament de lectura<pre> <?php // Definim els paràmetres per realitzar la...».)
(dif.) ← Versió més antiga | Versió actual (dif.) | Versió més nova → (dif.)

Creació de la BD i de la taula amb un sol fitxer

Per aquesta practica s'ha desenvolupat un unic fitxer PHP que realitza dos connexions a MariaDB. La primera per crear la BD i la segona per crear-hi la taula.

La BD s'anomenarà preferencies i tindrà una codificació de caracters UTF-8. L'usuari IOT tindrà permisos de lectura i escriptura mentre que l'usuari convidat únicament de lectura

<?php
            // Definim els paràmetres per realitzar la connexió
            $servername = "127.0.0.1"; 
            $username = "root"; 
            $password = "fjeclot";

            try {
                // Definim un nou objecte de la classe PDO amb els atributs: host al que ens connectarem, el nom d'usuari i contrasenya.    
                $conn = new PDO("mysql:host=$servername", $username, $password); 
                
                // A través de la funció setAttribute, agafem el tipus d'error en cas de que n'hi hagi algun
                $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                
                // Definim una variable que és l'ordre que s'executara, la qual és crear una BBDD nova amb nom "myDBPDO"
                $sql = "CREATE DATABASE IF NOT EXISTS preferencies CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"; 
                
                // Dins de la connexió, executem la variable sql (que és l'ordre vista anteriorment)
                $conn->exec($sql); 

Un cop creada la BD, iniciarem una segona connexio que aquesta vegada incloura el nom de la BD creada anteriorment i crearem una taula de nom canvis_idioma amb les següents columnes:

id INT AUTO_INCREMENT PRIMARY KEY,

                   idioma VARCHAR(10) NOT NULL,
                   data_canvi DATETIME NOT NULL,
                   ip_client VARCHAR(45) DEFAULT NULL,
                   nom_usuari VARCHAR(50)

A més a més, haurem d'especificar la codificació de la taula també com a UTF-8

// Segona connexió per crear la taula

               $servidor = "127.0.0.1"; 
               $usuari = "root"; 
               $contrasenya = "fjeclot";
               $nomDB = "preferencies";
               $conn = new PDO("mysql:host=$servidor;dbname=$nomDB", $usuari, $contrasenya);
               
               // A través de la funció setAttribute, agafem el tipus d'error en cas de que n'hi hagi algun
               $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
               
               // Definim una variable que és l'ordre que s'executara, la qual és crear una BBDD nova amb nom "myDBPDO"
               $sql = "CREATE TABLE canvis_idioma (
                   id INT AUTO_INCREMENT PRIMARY KEY,
                   idioma VARCHAR(10) NOT NULL,
                   data_canvi DATETIME NOT NULL,
                   ip_client VARCHAR(45) DEFAULT NULL,
                   nom_usuari VARCHAR(50)
               ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;"; 
               $conn->exec($sql); 
               // Si es crea correctament
               echo "Base de Dades i taula creades correctament<br>"; 

Per ultim, es pot donar el cas que MariaDB no tingui la zona horaria correcte. Per establir la zona horaria de Catalunya, haurem d'editar el fitxer de configuracio de MariaDB (/etc/mysql/mariadb.conf.d/50-server.cnf) i afegir el següent:

[mysqld] default-time-zone = '+01:00'