Creació de la BD i la taula: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
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...».
 
Cap resum de modificació
 
(Hi ha una revisió intermèdia que no es mostren del mateix usuari)
Línia 2: Línia 2:
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.
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>
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ó
            // Definim els paràmetres per realitzar la connexió
$servername = "127.0.0.1";  
            $servername = "127.0.0.1";  
$username = "root";  
            $username = "root";  
$password = "fjeclot";
            $password = "fjeclot";
 
try {
            try {
      // Definim un nou objecte de la classe PDO amb els atributs: host al que ens connectarem, el nom d'usuari i contrasenya.     
                // 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);  
                $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
                // 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);
                $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"
                // 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";  
                $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)
                // Dins de la connexió, executem la variable sql (que és l'ordre vista anteriorment)
      $conn->exec($sql);  
                $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:
</pre>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:<pre>
id INT AUTO_INCREMENT PRIMARY KEY,
id INT AUTO_INCREMENT PRIMARY KEY,
idioma VARCHAR(10) NOT NULL,
                    idioma VARCHAR(10) NOT NULL,
data_canvi DATETIME NOT NULL,
                    data_canvi DATETIME NOT NULL,
ip_client VARCHAR(45) DEFAULT NULL,
                    ip_client VARCHAR(45) DEFAULT NULL,
nom_usuari VARCHAR(50)
                    nom_usuari VARCHAR(50)
A més a més, haurem d'especificar la codificació de la taula també com a UTF-8
</pre>A més a més, haurem d'especificar la codificació de la taula també com a UTF-8<pre>
// Segona connexió per crear la taula
// Segona connexió per crear la taula
$servidor = "127.0.0.1";  
                $servidor = "127.0.0.1";  
$usuari = "root";  
                $usuari = "root";  
$contrasenya = "fjeclot";
                $contrasenya = "fjeclot";
$nomDB = "preferencies";
                $nomDB = "preferencies";
 
$conn = new PDO("mysql:host=$servidor;dbname=$nomDB", $usuari, $contrasenya);
                $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
                // 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);
                $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"
                // 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 (
                $sql = "CREATE TABLE canvis_idioma (
        id INT AUTO_INCREMENT PRIMARY KEY,
                    id INT AUTO_INCREMENT PRIMARY KEY,
        idioma VARCHAR(10) NOT NULL,
                    idioma VARCHAR(10) NOT NULL,
        data_canvi DATETIME NOT NULL,
                    data_canvi DATETIME NOT NULL,
        ip_client VARCHAR(45) DEFAULT NULL,
                    ip_client VARCHAR(45) DEFAULT NULL,
        nom_usuari VARCHAR(50)
                    nom_usuari VARCHAR(50)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";  
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";  
 
$conn->exec($sql);  
                $conn->exec($sql);  
 
// Si es crea correctament
                // Si es crea correctament
echo "Base de Dades i taula creades correctament<nowiki><br></nowiki>";  
                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:
</pre>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:<pre>
[mysqld]
[mysqld]
default-time-zone = '+01:00'
default-time-zone = '+01:00'
</pre>

Revisió de 01:52, 15 des 2025

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

// 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'