Resumo : neste tutorial você aprenderá como criar novas tabelas no banco de dados utilizando PDO.
Instruções SQL para criar novas tabelas
Para criar uma nova tabela em um banco de dados, você usa a instrução CREATE TABLE . Por exemplo, a CREATE TABLE
instrução a seguir cria a authors
tabela:
CREATE TABLE authors(
author_id INT AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
middle_name VARCHAR(50) NULL,
last_name VARCHAR(100) NULL,
PRIMARY KEY(author_id)
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
E a seguinte CREATE TABLE
instrução cria a book_authors
tabela:
CREATE TABLE book_authors (
book_id INT NOT NULL,
author_id INT NOT NULL,
PRIMARY KEY(book_id, author_id),
CONSTRAINT fk_book
FOREIGN KEY(book_id)
REFERENCES books(book_id) ON DELETE CASCADE,
CONSTRAINT fk_author
FOREIGN KEY(author_id)
REFERENCES authors(author_id) ON DELETE CASCADE
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que a book_authors
tabela está vinculada ao books
criado no tutorial anterior .
Normalmente, você executa essas CREATE TABLE
instruções usando uma ferramenta cliente MySQL para criar as tabelas authors
e book_authors
. Porém, neste tutorial, você aprenderá como criá-los a partir de PHP usando PDO.
Usando PDO para criar novas tabelas
Para executar uma instrução SQL usando PDO, siga estas etapas:
- Primeiro, conecte-se ao banco de dados (servidor MySQL neste caso) criando uma nova instância da classe PDO.
- Segundo, execute uma instrução SQL chamando o
exec()
método da instância PDO.
O exec()
método retorna o número de linhas afetadas em caso de sucesso ou false
falha.
O script a seguir ilustra como criar as tabelas authors
e book_authors
:
<?php
// SQL statement for creating new tables
$statements = [
'CREATE TABLE authors(
author_id INT AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
middle_name VARCHAR(50) NULL,
last_name VARCHAR(100) NULL,
PRIMARY KEY(author_id)
);',
'CREATE TABLE book_authors (
book_id INT NOT NULL,
author_id INT NOT NULL,
PRIMARY KEY(book_id, author_id),
CONSTRAINT fk_book
FOREIGN KEY(book_id)
REFERENCES books(book_id)
ON DELETE CASCADE,
CONSTRAINT fk_author
FOREIGN KEY(author_id)
REFERENCES authors(author_id)
ON DELETE CASCADE
)'];
// connect to the database
$pdo = require 'connect.php';
// execute SQL statements
foreach ($statements as $statement) {
$pdo->exec($statement);
}
Linguagem de código: PHP ( php )
Observe que este script reutiliza o connect.php
script que cria uma conexão com o servidor de banco de dados MySQL .
Como funciona.
- Primeiro, defina um array que contenha as instruções SQL para criar as tabelas
authors
ebook_authors
. - Segundo, conecte-se ao servidor de banco de dados MySQL usando o
connect.php
script. Oconnect.php
se conecta aobook
banco de dados db no servidor MySQL local. - Terceiro, execute cada instrução no
$statements
array chamando oexec()
método da instância PDO.
Após executar o script, você pode abrir o bookdb
banco de dados em uma ferramenta cliente MySQL para verificar se as tabelas authors
e book_authors
foram criadas com sucesso.
Resumo
- Use o
exec()
método da instância PDO para executar aCREATE TABLE
instrução para criar uma nova tabela no banco de dados do PHP.