SQLite PHP: Criando Tabelas – 01

Resumo : neste tutorial mostraremos como criar novas tabelas no banco de dados SQLite usando PHP PDO.

Criaremos duas novas tabelas no banco de dados phpsqlite que criamos no tutorial anterior . A seguir ilustra-se o script SQL que cria as tabelas projectse tasks.

CREATE TABLE IF NOT EXISTS projects (
    project_id   INTEGER PRIMARY KEY,
    project_name TEXT    NOT NULL
);

CREATE TABLE IF NOT EXISTS tasks (
    task_id        INTEGER PRIMARY KEY,
    task_name      TEXT    NOT NULL,
    completed      INTEGER NOT NULL,
    start_date     TEXT,
    completed_date TEXT,
    project_id     INTEGER NOT NULL,
    FOREIGN KEY (
        project_id
    )
    REFERENCES projects (project_id) ON UPDATE CASCADE
                                     ON DELETE CASCADE
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Para criar uma nova tabela em um banco de dados SQLite usando PDO, você usa as seguintes etapas:

  1. Primeiro, conecte-se ao banco de dados SQLite criando uma instância da classe PDO.
  2. Segundo, execute a instrução CREATE TABLE chamando o exec()método do objeto PDO.

Reutilizaremos a SQLiteConnectionclasse que desenvolvemos no tutorial anterior. A SQLiteCreateTableclasse a seguir demonstra como criar novas tabelas no   phpsqlitebanco de dados.

<?php

namespace App;

/**
 * SQLite Create Table Demo
 */
class SQLiteCreateTable {

    /**
     * PDO object
     * @var \PDO
     */
    private $pdo;

    /**
     * connect to the SQLite database
     */
    public function __construct($pdo) {
        $this->pdo = $pdo;
    }

    /**
     * create tables 
     */
    public function createTables() {
        $commands = ['CREATE TABLE IF NOT EXISTS projects (
                        project_id   INTEGER PRIMARY KEY,
                        project_name TEXT NOT NULL
                      )',
            'CREATE TABLE IF NOT EXISTS tasks (
                    task_id INTEGER PRIMARY KEY,
                    task_name  VARCHAR (255) NOT NULL,
                    completed  INTEGER NOT NULL,
                    start_date TEXT,
                    completed_date TEXT,
                    project_id VARCHAR (255),
                    FOREIGN KEY (project_id)
                    REFERENCES projects(project_id) ON UPDATE CASCADE
                                                    ON DELETE CASCADE)'];
        // execute the sql commands to create new tables
        foreach ($commands as $command) {
            $this->pdo->exec($command);
        }
    }

    /**
     * get the table list in the database
     */
    public function getTableList() {

        $stmt = $this->pdo->query("SELECT name
                                   FROM sqlite_master
                                   WHERE type = 'table'
                                   ORDER BY name");
        $tables = [];
        while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
            $tables[] = $row['name'];
        }

        return $tables;
    }

}Linguagem de código:  PHP  ( php )

Como funciona.

O createTables()método é usado para criar tabelas no   phpsqlitebanco de dados. Primeiro, temos um array que armazena as CREATE TABLEinstruções. Em seguida, percorremos o array e executamos cada CREATE TABLEinstrução, uma por uma, usando o exec()método do objeto PDO.

O getTableList()método seleciona todas as tabelas em um banco de dados SQLite consultando o nome da tabela na sqlite_mastertabela. O predicado na cláusula WHERE garante que a consulta retorne apenas as tabelas, não as visualizações. Você aprenderá como consultar dados usando PDO no tutorial subsequente.

Agora é hora de usar as classes que desenvolvemos.

No arquivo index.php, você usa o seguinte código:

<?php
require 'vendor/autoload.php';

use App\SQLiteConnection as SQLiteConnection;
use App\SQLiteCreateTable as SQLiteCreateTable;

$sqlite = new SQLiteCreateTable((new SQLiteConnection())->connect());
// create new tables
$sqlite->createTables();
// get the table list
$tables = $sqlite->getTableList();
?>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <meta name="description" content="">
        <meta name="author" content="tutorials.acervolima.com">
        <title>PHP SQLite CREATE TABLE Demo</title>
        <link href="http://v4-alpha.getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">

    </head>
    <body>
        <div class="container">
            <div class="page-header">
                <h1>PHP SQLite CREATE TABLE Demo</h1>
            </div>

            <table class="table table-bordered">
                <thead>
                    <tr>
                        <th>Tables</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($tables as $table) : ?>
                        <tr>

                            <td><?php echo $table ?></td>
                        </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </body>
</html>Linguagem de código:  PHP  ( php )

Primeiro, criamos uma nova instância da classe SQLiteCreateTable e passamos o objeto PDO que é criado usando a classe SQLiteConnection.

Em segundo lugar, chamamos createTables para criar as novas tabelas e o método getTableList para consultar as tabelas recém-criadas.

Terceiro, no código HTML, exibimos a lista de tabelas.

O seguinte ilustra o resultado do script index.php:

Demonstração de criação de tabela PHP SQLite

Neste tutorial, mostramos como criar novas tabelas executando a CREATE TABLEinstrução usando PHP PDO.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *