Conectando PHP e MySQL no CMS bluetronix
Neste tutorial, você criará sua própria tabela de banco de dados e a conectará a uma página CMS. Através de exemplos práticos, você conhecerá os comandos SQL INSERT, REPLACE, SELECT e UPDATE e aprenderá a exibir valores de banco de dados em sua página da web usando espaços reservados HTML.
Criar página de exemplo
Para este tutorial, você primeiro criará uma nova página de exemplo.
Por exemplo:
Exemplo de PHP MySQL
A página pode estar inicialmente completamente vazia.
Abra a página em um editor HTML normal e insira qualquer seção da página. Esta área HTML servirá mais tarde como modelo para os dados que serão carregados do banco de dados.
Criar tabela de banco de dados
Antes de poder salvar dados, você precisa de uma tabela de banco de dados própria.
Para isso, abra:
Banco de Dados → Nova Tabela
Para este exemplo, usaremos uma tabela com as colunas ID, Data, Título, Descrição e Imagem.
ID contém o ID único do registro. Data armazena data e hora. Título contém o título, Descrição um texto de descrição mais longo e Imagem o nome da imagem.
Os nomes de tabelas, colunas e variáveis devem sempre ser usados em inglês dentro dos tutoriais para desenvolvedores.
Abrir código PHP
Depois que a tabela for criada, volte para a sua página de exemplo.
Abra lá:
Código PHP
A partir dessa área, você pode acessar diretamente o banco de dados.
Salvar dados com INSERT ou REPLACE
No primeiro exemplo, você salvará um registro na tabela de banco de dados criada anteriormente.
Para isso, primeiro defina as variáveis PHP necessárias.
Exemplo:
$ID = 1;
$Date = date("Y-m-d H:i:s");
$Title = "My Title";
$Description = "My Description";
$Image = "my-image.jpg";
Você pode armazenar esses valores posteriormente com uma declaração preparada do MySQL.
Para acessos ao banco de dados, você deve usar sempre declarações preparadas. Assim, os valores são processados separadamente do comando SQL real.
Exemplo com REPLACE:
$stmt = $mysqli->prepare("REPLACE INTO ExampleTable (ID, `Date`, Title, Description, Image) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("issss", $ID, $Date, $Title, $Description, $Image);
$stmt->execute();

Em seguida, acesse a página uma vez.
Depois, abra:
Banco de Dados → Visualizar
Lá, o novo registro criado deve estar visível.
Diferença entre INSERT e REPLACE
INSERT adiciona um novo registro.
Se já existir um registro com o mesmo ID único ou chave primária, um INSERT normal pode causar um erro de chave duplicada.
REPLACE pode ser usado quando um registro existente com o mesmo ID único deve ser substituído.
Para exemplos de teste com um ID fixo, REPLACE é frequentemente mais prático, pois a página pode ser acessada várias vezes.
Ler dados com SELECT
No próximo passo, você irá ler o registro armazenado novamente do banco de dados.
Exemplo:
$stmt = $mysqli->prepare("SELECT `Date`, Title, Description, Image FROM ExampleTable WHERE ID = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();
$result = $stmt->get_result();
if($row = $result->fetch_assoc()) {
$Date = $row["Date"];
$Title = $row["Title"];
$Description = $row["Description"];
$Image = $row["Image"];
}
Os valores lidos estarão, em seguida, nas variáveis $Date, $Title, $Description e $Image.
Conectar banco de dados e $LayoutHTML
A variável global do CMS $LayoutHTML contém durante o processo de renderização o HTML atual gerado da página.
Assim, você pode substituir seus próprios marcadores dentro do código HTML com dados da tabela MySQL.
Definir marcadores no código HTML
Abra novamente o código HTML da sua página de exemplo.
Os conteúdos da seção de página inserida anteriormente agora podem ser substituídos por seus próprios marcadores.
Por exemplo:
__MyDate__
__MyTitle__
__MyDescription__
__MyImage__
Um exemplo simplificado de HTML:
<section>
<div class="container">
<img src="__MyImage__" alt="">
<small>__MyDate__</small>
<h2>__MyTitle__</h2>
<p>__MyDescription__</p>
</div>
</section>

Para este primeiro exemplo de MySQL, as marcas de tradução existentes podem ser removidas inicialmente. Isso facilita a identificação de quais conteúdos são substituídos diretamente pelo PHP e MySQL.
Inserir valores do banco de dados no layout
Depois que os dados forem carregados com SELECT, você substitui os marcadores dentro de $LayoutHTML.
Exemplo:
$LayoutHTML = str_replace("__MyDate__",$Date,$LayoutHTML);
$LayoutHTML = str_replace("__MyTitle__",$Title,$LayoutHTML);
$LayoutHTML = str_replace("__MyDescription__",$Description,$LayoutHTML);
$LayoutHTML = str_replace("__MyImage__",$Image,$LayoutHTML);
O fluxo é assim:
Banco de Dados MySQL → SELECT → Variáveis PHP → str_replace() → $LayoutHTML → Site finalizado

Os conteúdos do banco de dados serão, assim, exibidos diretamente dentro do layout HTML existente.
Testar alterações diretamente pelo banco de dados
Abra:
Banco de Dados → Visualizar
Em seguida, edite o registro existente.
Por exemplo, você pode alterar o título de My Title para New My Title.
Você também pode alterar a imagem através do botão BX-Image correspondente.
Após salvar e recarregar a página, os dados alterados serão exibidos diretamente no layout da página.
Assim, existe uma conexão direta entre:
Banco de Dados → PHP → $LayoutHTML → Página da Web
Modificar dados com UPDATE
Com UPDATE, você pode alterar um registro existente diretamente através do PHP.
É especificado, através de uma condição, qual registro deve ser alterado.
Após executar a atualização, você pode carregar novamente os dados com SELECT e, em seguida, exibi-los na sua página através de $LayoutHTML.
Resumo
Com PHP e MySQL, você pode armazenar, ler e modificar dados dentro do CMS bluetronix.
INSERT ou REPLACE salvam dados, SELECT lê dados e UPDATE modifica registros existentes.
Através de $LayoutHTML, você pode utilizar os dados carregados diretamente em estruturas HTML existentes.
Dessa forma, é possível conectar conteúdos do banco de dados de forma limpa ao layout HTML de uma página CMS.
FAQ
o que os clientes nos perguntam frequentemente
O que eu preciso para este tutorial de PHP e MySQL?
Você precisará de um acesso de desenvolvedor ao CMS bluetronix. Além disso, você deve já saber como funciona o processo de renderização de site do CMS e qual a função da variável $LayoutHTML.
Onde eu crio uma nova tabela de banco de dados?
Abra na CMS a seção Banco de Dados → Nova Tabela.
Quais colunas são usadas no exemplo?
No tutorial, as colunas ID, Date, Title, Description e Image são utilizadas.
Por que devo usar Prepared Statements?
Prepared Statements separam os valores fornecidos do comando SQL real e, por isso, são destinados a acessos ao banco de dados.
Qual é a diferença entre INSERT e REPLACE?
INSERT adiciona um novo registro. REPLACE pode substituir um registro existente com o mesmo ID exclusivo ou a mesma chave primária.
Como leio dados do banco de dados?
Para isso, você utiliza um comando SELECT. Os valores carregados podem ser armazenados, por exemplo, em variáveis PHP como $Title, $Description ou $Image.
Como os dados do MySQL chegam ao HTML da página?
Primeiro, você define seus próprios marcadores no código HTML e depois os substitui com str_replace() dentro de $LayoutHTML pelos valores carregados do banco de dados.
Como posso verificar se a conexão entre o banco de dados e o site está funcionando?
Abra Banco de Dados → Exibir, altere um registro existente e recarregue a página. Os novos valores devem aparecer diretamente no layout da página.
Para que serve o UPDATE?
Com o UPDATE você pode alterar um registro já existente diretamente via PHP.
Posso usar imagens do banco de dados também no layout da página?
Sim. No exemplo, o valor da imagem é armazenado na variável $Image e utilizado através de um marcador próprio como __MyImage__ em $LayoutHTML.