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 projects
e 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:
- Primeiro, conecte-se ao banco de dados SQLite criando uma instância da classe PDO.
- Segundo, execute a instrução CREATE TABLE chamando o
exec()
método do objeto PDO.
Reutilizaremos a SQLiteConnection
classe que desenvolvemos no tutorial anterior. A SQLiteCreateTable
classe a seguir demonstra como criar novas tabelas no phpsqlite
banco 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 phpsqlite
banco de dados. Primeiro, temos um array que armazena as CREATE TABLE
instruções. Em seguida, percorremos o array e executamos cada CREATE TABLE
instruçã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_master
tabela. 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:
Neste tutorial, mostramos como criar novas tabelas executando a CREATE TABLE
instrução usando PHP PDO.