Banco de dados MySQL PHP

Como inserir dados no MySQL com PHP

ensinamos você a inserir dados mysql php

Neste tutorial, você vai aprender a como gerenciar banco de dados do seu script PHP. Você vai aprender inserir dados no MySQL com PHP. Antes de prosseguir, você deve conferir outro tutorial que aborda um passo muito importante para você trabalhar com PHP e banco de dados – conectando PHP ao banco de dados.

O que você vai precisar

Antes de aprender como inserir dados MySQL PHP, você vai precisar de:

  • Acesso ao painel de controle da sua conta de hospedagem.

1º Passo – Criando uma tabela para inserir dados MySQL PHP

Antes de conseguir inserir dados MySQL PHP, será preciso criar uma tabela para os seus dados. É um processo muito simples que você pode fazer com o phpMyAdmin, que é localizado no painel de controle da sua hospedagem. Nós já falamos sobre como criar um banco de dados MySQL neste tutorial, então vamos seguir daqui em diante, ok?opção php my admin para você inserir dados mysql php

Você vai cair numa tela chamada Lista de Banco de Dados. A partir daqui, clique na opção Entra phpMyAdmin. Oriente-se pela imagem abaixo.opção entra php admin para inserir dados mysql php

Depois de acessar sua página phpMyAdmin, você deve ver algo parecido com isso:acesso à estrutura do banco de dados para inserir dados mysql php

Nós vamos criar uma tabela chamada Students para o nosso banco de dados u266072517_name. Você pode criar uma nova tabela clicando em Create Table. Depois disso, você verá esta nova página onde você pode inserir todas as informações necessárias para sua tabela:um exemplo de tabela para inserir dados mysql php

Esta é a configuração mais simples que você pode usar para uma tabela, para mais informações sobre a estrutura da tabela/ banco de dados e quais os tipos configurações você pode usar com esta coluna, consulte o documento oficial do phpMyAdmin.

Por enquanto, veja uma breve explicação das colunas que usamos:

  • Name – Este é o nome da sua coluna. Será exibido no topo da sua tabela.
  • Type – Aqui você pode configurar o tipo da coluna aqui. Por exemplo, nós selecionamos varchar porque precisamos selecionar um tipo de nome aqui (que tenha letras, não números).
  • Length/Values – Usado para especificar o comprimento máximo que sua entrada nesta coluna possa ter.
  • Index – Nós usamos o índice “Primary” para o campo “ID”. Ao criar uma tabela, é recomendado ter uma coluna ID. É usado para enumerar entradas da tabela e necessária quando configurar a tabela. Também selecionamos “A_I”, que significa Auto Increment. Isto vai enumerar as entradas automaticamente (1, 2, 3, 4…).

Clique em Save e sua tabela estará pronta. De agora em diante, você será capaz de inserir dados MySQL PHP. Para tanto, precisa seguir os próximos passos. 

2º Passo — Escrevendo código PHP para inserir dados no banco de dados MySQL

1ª Opção – Método MySQLi

Primeiro de tudo, você deve estabelecer uma conexão com o banco de dados como mostramos neste tutorial. Depois dessa etapa, podemos prosseguir com a inserir SQL Query. Aqui está um exemplo de código completo com os métodos básicos de conexão e inserção:

<?php
$servername = "mysql.hostinger.co.uk";
$database = "u266072517_name";
$username = "u266072517_user";
$password = "buystuffpwd";

// Create connection

$conn = mysqli_connect($servername, $username, $password, $database);

// Check connection

if (!$conn) {
      die("Connection failed: " . mysqli_connect_error());
}
 
echo "Connected successfully";
 
$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', 'thom.v@some.com')";
if (mysqli_query($conn, $sql)) {
      echo "New record created successfully";
} else {
      echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);

?>

Então, a primeira parte do código (linhas 3-18) é sobre a atual conexão do banco de dados e que você pode conferir no tutorial já existente.

Vamos começar pela linha 19:

$sql = "INSERT INTO Students (name, lastname, email) VALUES ('Thom', 'Vial', 'thom.v@some.com')";

Esta é a linha mais importante do nosso código e que executa tudo o que a gente quer aprender neste tutorial – inserir dados MySQL PHP. O INSERT INTO é uma instrução que adiciona dados em banco de dados específicos da tabela. Neste exemplo, estamos adicionando dados à tabela Students.

Seguindo adiante, entre os colchetes, temos as colunas de tabela para as quais queremos adicionar valores (name, lastname, email). Os dados vão ser preenchidos na ordem especificada. Se escrevêssemos (email, lastname, name), os valores seriam adicionados numa ordem diferente.

A próxima parte é sobre a declaração VALUES. Aqui especificamos os valores para as colunas determinadas anteriormente. Dessa maneira, cada coluna representa um valor específico. Por exemplo, no nosso caso ele seria: name = Thom, lastname = Vial, email = thom.v@some.com.

Outra coisa relevante é que acabamos de executar a SQL Query usando um código PHP.  Lembrando que as SQL Queries devem ser posicionados entre as citações. No nosso exemplo, tudo o que está entre citações e depois de $sql = é uma SQL Query.  

A próxima parte do código (linhas 20 – 22) mostra se nosso pedido foi feito com sucesso.

if (mysqli_query($conn, $sql)) {
     echo "New record created successfully";
}

Ele simplesmente mostra uma mensagem de sucesso se o pedido que executamos foi realizado. Pode comemorar, você aprendeu a como inserir dados MySQL PHP.

E a parte final (linhas 22 -24) mostra uma mensagem diferente caso o pedido não seja executado com sucesso:

else {
     echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

Ele vai mostrar uma mensagem de erro caso algo dê errado. Se isso aparecer, significa que você não foi capaz de inserir dados MySQL PHP

Opção 2 – Método PHP Data Object (PDO)

Esse é um segundo método que você pode usar para inserir dados MySQL PHP. Assim como os exemplos anteriores, precisamos primeiro de uma conexão com o banco de dados criando um novo objeto PDO. Para isso, use este tutorial.  Como a conexão ao banco de dados MySQL é um objeto PDO, você deve usar vários métodos PDO (qualquer função que seja parte de qualquer objeto) para preparar e fazer os pedidos. Os métodos de objetos são chamados assim:

$the_Object->the_Method();

O PDO permite que você “prepare” o código SQL antes dele ser executado. A SQL Query é avaliada e “corrigida” antes de ser executada. Um ataque de injeção de SQL simplificado poderia ser feito apenas escrevendo o código SQL em um campo de um formulário. Por exemplo:

// User writes this in the username field of a login form
john"; DROP DATABASE user_table;

// The final query becomes this
"SELECT * FROM user_table WHERE username = john"; DROP DATABASE user_table;

Como existe um código de SQL sintaticamente correto, o ponto e vírgula faz do DROP DATABASE user_table uma nova SQL Query, e a sua tabela é apagada. Declarações preparadas não permitem os caracteres de aspas (“) e nem ponto e vírgula (;) no final da solicitação original e a intrução maliciosa DROP DATABASE nunca será executada.

Você sempre deve usar declarações preparadas quando enviar ou receber dados do banco de dados com PDO.

Para usar declarações preparadas, você deve escrever uma nova variante que chame o método prepare() do objeto do banco de dados.

No código correto:

<?php
$servername = "mysql.hostinger.com";
$database = "u266072517_name"; 
$username = "u266072517_user";
$password = "buystuffpwd";
$sql = "mysql:host=$servername;dbname=$database;";
$dsn_Options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION];

// Create a new connection to the MySQL database using PDO, $my_Db_Connection is an object
try { 
  $my_Db_Connection = new PDO($sql, $username, $password, $dsn_Options);
  echo "Connected successfully";
} catch (PDOException $error) {
  echo 'Connection error: ' . $error->getMessage();
}

// Set the variables for the person we want to add to the database
$first_Name = "Thom";
$last_Name = "Vial";
$email = "thom.v@some.com";

// Here we create a variable that calls the prepare() method of the database object
// The SQL query you want to run is entered as the parameter, and placeholders are written like this :placeholder_name
$my_Insert_Statement = $my_Db_Connection->prepare("INSERT INTO Students (name, lastname, email) VALUES (:first_name, :last_name, :email)");

// Now we tell the script which variable each placeholder actually refers to using the bindParam() method
// First parameter is the placeholder in the statement above - the second parameter is a variable that it should refer to
$my_Insert_Statement->bindParam(:first_name, $first_Name);
$my_Insert_Statement->bindParam(:last_name, $last_Name);
$my_Insert_Statement->bindParam(:email, $email);

// Execute the query using the data we just defined
// The execute() method returns TRUE if it is successful and FALSE if it is not, allowing you to write your own messages here
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

// At this point you can change the data of the variables and execute again to add more data to the database
$first_Name = "John";
$last_Name = "Smith";
$email = "john.smith@email.com";
$my_Insert_Statement->execute();

// Execute again now that the variables have changed
if ($my_Insert_Statement->execute()) {
  echo "New record created successfully";
} else {
  echo "Unable to create record";
}

Nas linhas 28, 29 e 30, nós usamos o método bindParam() do objeto do banco de dados. Também existe um método bindValue() que é bem diferente. Vamos ver como eles funcionam?

  • bindParam() – Esse método avalia dados quando o método execute() é alcançado. A primeira vez que o script alcança um método execute() ele vê que o $first_Name corresponde ao “Thom”, vincula aquele valor e executa a consulta. Quando o script alcança o segundo método execute(), ele vê o $first_Name agora corresponde a “John”, vincula aquele valor e executa a consulta novamente com os novos valores. O que é importante de se lembrar é que nós definimos a consulta uma vez a reusamos com dados diferentes em diferentes pontos do script.
  • bindValue() – Esse método avalia os dados assim que o bindValue() é alcançado. Como o valor do $first_Name foi definido como “Thom” quando o bindValue() foi alcançado, ele será usado toda vez que um método execute() for chamado para $my_Insert_Statement.  

Perceba que nós usamos a variante $first_Name e demos a ela um outro valor na segunda vez. Se você conferir o banco de dados depois de executar o script, você terá ambos os nomes definidos, apesar da variável $first_Name ser equivalente a “John” ao final do script. Lembre-se que o PHP avalia o script inteiro antes de realmente executá-lo.

Se você atualizar o script e substituir bindParam com bindValue, você vai inserir “Thom Vail” duas vezes no banco de dados e “John Smith” será ignorado.

3º Passo — Confirmando o sucesso da operação e resolvendo erros comuns

Se a solicitação que executamos e inserimos no banco de dados MySQL deu certo, você verá uma mensagem como a de baixo. Basicamente, ela diz que a conexão foi feita com sucesso e um novo registro foi criado também com sucesso. Em outras palavras, você conseguiu inserir dados MySQL PHP.

mensagem de conexão com sucesso para você aprender a inserir dados mysql php

Resolvendo erros comuns

MySQLi

Em qualquer outro caso, uma imagem de erro vai aparecer. Por exemplo, vamos fazer um erro de sintaxe no nosso código e a mensagem que vai aparecer é algo bem parecido com a de baixo.

mensagem de falha de conexão não estabelecida para você aprender a inserir dados mysql php

Como podemos ver, a primeira parte do nosso código está boa. A conexão foi estabelecida com sucesso, mas nossa  SQL Query esbarrou em um erro.

"Error: INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')' at line 1"

Existe um erro de sintaxe que, infelizmente, fez o nosso script dar erro. O erro estava aqui:

$sql = "INSERT INTO Students {name, lastname, email} VALUES ('Thom', 'Vial',

Como você pode ver, nós usamos as chaves “{}” em vez dos colchetes “[]”. E isso não está correto, algo que fez nosso script aponta o erro e falhar a execução.

PDO

Na linha 7 da conexão PDO, o modo de erro está configurado para “mostrar todas as exceções”. Se isso tivesse deixado fora do script e a solicitação tivesse falhado, você não receberia nenhuma mensagem de erro. Com as exceções habilitadas, é o problema específico que aparece, aumentando suas chances de resolvê-lo.

Isso deve ser usado apenas quando estiver desenvolvendo um script, pois ele pode expor o banco de dados e os nomes das tabelas. Algo que você pode preferir esconder de qualquer tipo de tentativa maliciosa de acesso aos seus dados. Nesse caso acima em que as chaves foram usadas no lugar dos colchetes, o erro se parece com o código abaixo.

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; <code>check the manual that corresponds to your MySQL server version for the right syntax to use near '{name, lastname, email} VALUES ('Thom', 'Vial', 'thom.v@some.com')' at line 1"</code>

Outros possíveis problemas que você pode encontrar:

  • Colunas especificadas incorretamente (colunas não-existentes ou com erros de ortografia).
  • Um tipo de valor sendo atribuído a outro tipo de coluna. Por exemplo, se tentássemos atribuir o número “47” na coluna Name, vamos encontrar um erro pois deve ser um valor de sequência. Mas se for atribuído um número entre as aspas, por exemplo “47”, isso funcionaria porque nosso número funcionaria porque nosso número seria atribuído como uma string à coluna.
  • Tentar inserir dados em uma tabela que não existe ou cometer erros de digitação.

Todos estes erros podem ser corrigidos facilmente se você seguir as instruções da mensagem de erro ou corrigir nsagens de erros. Depois de adicionar dados de forma bem sucedida, devemos vê-los adicionados ao nosso banco de dados. Aqui está um exemplo de tabela e que adicionamos nossos dados vista do phpMyAdmin.conexão feita com sucesso ao inserir dados mysql php

Conclusão

computadores mostram como inserir dados mysql php

Neste tutorial, você aprendeu como inserir dados no MySQL com PHP usando MySQLi e PDO. Você também aprendeu a como solucionar problemas de comuns de conexão. Inserir dados no MySQL com PHP é extremamente útil para quem está aprendendo como codificar ou construir um site.

Andrei L.

Andrei é jornalista e conteudista na Hostinger. Tem experiência no WordPress, em conteúdos de tecnologia e conhecimentos avançados em SEO. É fã de games, adora vôlei e ama o inverno.

Deixe um Comentário

Deixe seu comentário!

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Comece a Economizar Agora!

Hospedagem com tudo incluso e nome de domínio
2
95
/mês

Cadastre-se

Receba nossos conteúdos e novidades direto no seu e-mail!

 

Estamos cadastrando...

Pronto! Obrigado por se inscrever!

[href]
[href]