Article image
Weslley Ferraz
Weslley Ferraz30/09/2023 13:53
Compartilhe

Criação de tabelas no banco de dados usando PHP

  • #PHP
  • #MySQL
  • #POO

Como parte da terceira etapa do compartilhamento do meu projeto de gestão de academias de artes marciais, gostaria de mostrar a vocês a classe DataBase, que é responsável por criar as tabelas necessárias no banco de dados para o funcionamento do projeto. Essas tabelas são fundamentais para armazenar informações sobre usuários, imagens, artes marciais e graduações. Você pode encontrar todo o código-fonte no meu repositório do GitHub aqui.

Vamos dar uma olhada mais detalhada na classe DataBase:

<?php
include_once "connection.php";

class DataBase
{
  public static function createTableUser()
  {
      try {
          $dbConnection = new Connection();
          $connection = $dbConnection->connect();

          $query = "CREATE TABLE IF NOT EXISTS users (
              user_id INT AUTO_INCREMENT PRIMARY KEY,
              name VARCHAR(255) NOT NULL,
              description VARCHAR(255) NULL,
              pathImage VARCHAR(255) NOT NULL,
              phone VARCHAR(20) NOT NULL,
              email VARCHAR(255) NOT NULL UNIQUE,
              level VARCHAR(255) NOT NULL,
              status VARCHAR(255) NOT NULL,
              password VARCHAR(255) NOT NULL,
              days INT NOT NULL,
              addressline1 VARCHAR(255) NOT NULL,
              addressline2 VARCHAR(255) NOT NULL,
              neighborhood VARCHAR(255) NOT NULL,
              city VARCHAR(255) NOT NULL,
              state VARCHAR(255) NOT NULL,
              country VARCHAR(255) NOT NULL,
              postal_code VARCHAR(255) NOT NULL,
              updatedDate DATETIME NOT NULL,
              createdDate DATETIME NOT NULL
          )";

          $connection->query($query);

          return "Tabela users criada com sucesso";
      } catch (Exception $e) {
          error_log("Erro na criação da tabela 'users': " . $e->getMessage());
          return "Erro na criação da tabela 'users': " . $e->getMessage();
      }
  }

  public static function createTableImage()
  {
      try {
          $dbConnection = new Connection();
          $connection = $dbConnection->connect();

          $query = "CREATE TABLE IF NOT EXISTS images (
              user_id INT AUTO_INCREMENT PRIMARY KEY,
              name VARCHAR(255) NOT NULL,
              pathImage VARCHAR(255) NOT NULL
          )";

          $connection->query($query);

          return "Tabela images criada com sucesso";
      } catch (Exception $e) {
          error_log("Erro na criação da tabela 'images': " . $e->getMessage());
          return "Erro na criação da tabela 'images': " . $e->getMessage();
      }
  }

  public static function createTableMartialArt()
  {
      try {
          $dbConnection = new Connection();
          $connection = $dbConnection->connect();

          $query = "CREATE TABLE IF NOT EXISTS martial_arts (
              martial_art_id INT AUTO_INCREMENT PRIMARY KEY,
              user_id INT NOT NULL,
              martial_art VARCHAR(255) NOT NULL,
              description TEXT,
              creation_date DATETIME NOT NULL,
              change_date DATETIME NOT NULL,
              FOREIGN KEY (user_id) REFERENCES users(user_id)
          )";

          $connection->query($query);

          return "Tabela martial_arts criada com sucesso";
      } catch (Exception $e) {
          error_log("Erro na criação da tabela 'martial_arts': " . $e->getMessage());
          return "Erro na criação da tabela 'martial_arts': " . $e->getMessage();
      }
  }

  public static function createTableGraduation()
  {
      try {
          $dbConnection = new Connection();
          $connection = $dbConnection->connect();

          $query = "CREATE TABLE IF NOT EXISTS graduations (
              graduation_id INT AUTO_INCREMENT PRIMARY KEY,
              user_id INT NOT NULL,
              martial_art_id INT NOT NULL,
              graduation_name VARCHAR(255) NOT NULL,
              description TEXT,
              creation_date DATETIME NOT NULL,
              change_date DATETIME NOT NULL,
              FOREIGN KEY (user_id) REFERENCES users(user_id),
              FOREIGN KEY (martial_art_id) REFERENCES martial_arts(martial_art_id)
          )";

          $connection->query($query);

          return "Tabela graduations criada com sucesso";
      } catch (Exception $e) {
          error_log("Erro na criação da tabela 'graduations': " . $e->getMessage());
          return "Erro na criação da tabela 'graduations': " . $e->getMessage();
      }
  }
}

Após a definição da classe DataBase, no arquivo index.php na raiz do projeto, chamamos esses métodos de criação de tabela da seguinte forma:

<?php
include_once("models/database.php");

echo DataBase::createTableUser();
echo "</br>";
echo DataBase::createTableImage();
echo "</br>";
echo DataBase::createTableMartialArt();
echo "</br>";
echo DataBase::createTableGraduation();

header("Location:views/home.php");
exit();

Esses métodos executam consultas SQL para criar as tabelas necessárias no banco de dados. Se a tabela já existir, eles garantem que não será criada novamente, evitando duplicação de dados. contate me clicando aqui

Compartilhe
Comentários (0)