Creació de la BD i la taula
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'