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ó
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>
<?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);
</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,
                    idioma VARCHAR(10) NOT NULL,
                    data_canvi DATETIME NOT NULL,
                    ip_client VARCHAR(45) DEFAULT NULL,
                    nom_usuari VARCHAR(50)
</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
                $servidor = "127.0.0.1";
                $usuari = "root";
                $contrasenya = "fjeclot";
                $nomDB = "preferencies";


                $conn = new PDO("mysql:host=$servidor;dbname=$nomDB", $usuari, $contrasenya);
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ó
                // A través de la funció setAttribute, agafem el tipus d'error en cas de que n'hi hagi algun
$servername = "127.0.0.1";
                $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$username = "root";
               
$password = "fjeclot";
                // 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 (
try {
                    id INT AUTO_INCREMENT PRIMARY KEY,
      // Definim un nou objecte de la classe PDO amb els atributs: host al que ens connectarem, el nom d'usuari i contrasenya.   
                    idioma VARCHAR(10) NOT NULL,
      $conn = new PDO("mysql:host=$servername", $username, $password);
                    data_canvi DATETIME NOT NULL,
               
                    ip_client VARCHAR(45) DEFAULT NULL,
      // A través de la funció setAttribute, agafem el tipus d'error en cas de que n'hi hagi algun
                    nom_usuari VARCHAR(50)
      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";  
               
 
      // Definim una variable que és l'ordre que s'executara, la qual és crear una BBDD nova amb nom "myDBPDO"
                $conn->exec($sql);  
      $sql = "CREATE DATABASE IF NOT EXISTS preferencies CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci";
 
               
                // Si es crea correctament
      // Dins de la connexió, executem la variable sql (que és l'ordre vista anteriorment)
                echo "Base de Dades i taula creades correctament<br>";  
      $conn->exec($sql);
</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>
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:
[mysqld]
id INT AUTO_INCREMENT PRIMARY KEY,
default-time-zone = '+01:00'
idioma VARCHAR(10) NOT NULL,
</pre>
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<nowiki><br></nowiki>";  
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'

Revisió del 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'