0% acharam este documento útil (0 voto)
18 visualizações11 páginas

Como inserir dados no MySQL com PHP

Este tutorial ensina como inserir dados em um banco de dados MySQL usando PHP, abordando a criação de tabelas e a escrita de código PHP para inserção. O documento apresenta dois métodos: MySQLi e PDO, detalhando a conexão com o banco de dados e a execução de consultas SQL. Além disso, o tutorial inclui dicas para resolver erros comuns durante o processo de inserção de dados.

Enviado por

romulocp1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações11 páginas

Como inserir dados no MySQL com PHP

Este tutorial ensina como inserir dados em um banco de dados MySQL usando PHP, abordando a criação de tabelas e a escrita de código PHP para inserção. O documento apresenta dois métodos: MySQLi e PDO, detalhando a conexão com o banco de dados e a execução de consultas SQL. Além disso, o tutorial inclui dicas para resolver erros comuns durante o processo de inserção de dados.

Enviado por

romulocp1
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 11

Como inserir dados no MySQL com PHP

Last Updated on: junho 20th, 2018


Deixe um Comentário
Andrei L.

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.

Conteúdo
 O que você vai precisar
 1º Passo – Criando uma tabela para inserir dados MySQL PHP
 2º Passo — Escrevendo código PHP para inserir dados no banco de dados
MySQL
 3º Passo — Confirmando o sucesso da operação e resolvendo erros comuns
 Conclusão

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?

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.

Depois de acessar sua página phpMyAdmin, você deve ver algo


parecido com isso:

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:

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 varcharporque 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:

1. <?php
2. $servername = "mysql.hostinger.co.uk";
3. $database = "u266072517_name";
4. $username = "u266072517_user";
5. $password = "buystuffpwd";
6.
7. // Create connection
8.
9. $conn = mysqli_connect($servername, $username, $password,
$database);
10.
11. // Check connection
12.
13. if (!$conn) {
14. die("Connection failed: " . mysqli_connect_error());
15. }
16.
17. echo "Connected successfully";
18.
19. $sql = "INSERT INTO Students (name, lastname, email)
VALUES ('Thom', 'Vial', 'thom.v@some.com')";
20. if (mysqli_query($conn, $sql)) {
21. echo "New record created successfully";
22. } else {
23. echo "Error: " . $sql . "<br>" . mysqli_error($conn);
24. }
25. mysqli_close($conn);
26.
27. ?>

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:

1. $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.

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

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:

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

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:

1. $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:

1. // User writes this in the username field of a login form


2. john"; DROP DATABASE user_table;
3.
4. // The final query becomes this
5. "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:

1. <?php
2. $servername = "mysql.hostinger.com";
3. $database = "u266072517_name";
4. $username = "u266072517_user";
5. $password = "buystuffpwd";
6. $sql = "mysql:host=$servername;dbname=$database;";
7. $dsn_Options = [PDO::ATTR_ERRMODE =>
PDO::ERRMODE_EXCEPTION];
8.
9. // Create a new connection to the MySQL database using PDO,
$my_Db_Connection is an object
10. try {
11. $my_Db_Connection = new PDO($sql, $username,
$password, $dsn_Options);
12. echo "Connected successfully";
13. } catch (PDOException $error) {
14. echo 'Connection error: ' . $error->getMessage();
15. }
16.
17. // Set the variables for the person we want to add to the
database
18. $first_Name = "Thom";
19. $last_Name = "Vial";
20. $email = "thom.v@some.com";
21.
22. // Here we create a variable that calls the prepare() method
of the database object
23. // The SQL query you want to run is entered as the
parameter, and placeholders are written like
this :placeholder_name
24. $my_Insert_Statement = $my_Db_Connection-
>prepare("INSERT INTO Students (name, lastname, email)
VALUES (:first_name, :last_name, :email)");
25.
26. // Now we tell the script which variable each placeholder
actually refers to using the bindParam() method
27. // First parameter is the placeholder in the statement above -
the second parameter is a variable that it should refer to
28. $my_Insert_Statement->bindParam(:first_name,
$first_Name);
29. $my_Insert_Statement->bindParam(:last_name,
$last_Name);
30. $my_Insert_Statement->bindParam(:email, $email);
31.
32. // Execute the query using the data we just defined
33. // The execute() method returns TRUE if it is successful and
FALSE if it is not, allowing you to write your own messages here
34. if ($my_Insert_Statement->execute()) {
35. echo "New record created successfully";
36. } else {
37. echo "Unable to create record";
38. }
39.
40. // At this point you can change the data of the variables and
execute again to add more data to the database
41. $first_Name = "John";
42. $last_Name = "Smith";
43. $email = "john.smith@email.com";
44. $my_Insert_Statement->execute();
45.
46. // Execute again now that the variables have changed
47. if ($my_Insert_Statement->execute()) {
48. echo "New record created successfully";
49. } else {
50. echo "Unable to create record";
51. }

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.
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.

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.

1. "Error: INSERT INTO Students {name, lastname, email} VALUES


('Thom', 'Vial', 'thom.v@some.com')
2. 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:

1. $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.
1. 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.

Conclusão
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. •

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy