Pegar dados via POST e inserir no banco de dados MySQL com PHP

HTML, MySQL, PHP Comentar >> Marcelo Korjenioski

Exem­plo básico para pegar valo­res via POST de um for­mu­lá­rio HTML e inse­rir no banco de dados MySQL.

<?php
// Verifica se foi postado algo para inserir dados no banco.
if($_POST) {
// Fazendo a conexão com o servidor MySQL
// mysql_pconnect("server", "login", "senha")
$conexao = mysql_pconnect("localhost","root","root") or die('falha ao conectar');
// Verifica se o banco de dados existe antes de criar.
$query = 'CREATE DATABASE IF NOT EXISTS test';

if(!mysql_query($query,$conexao)) {
echo 'falha ao criar banco<br />';
die; // Com o die eu já paro de executar o script caso ocorra erro.
}

mysql_select_db("test",$conexao) or die('falha ao selecionar db');

// Verifica se a tabela existe antes de criar.
$query = "CREATE TABLE  IF NOT EXISTS tb_produtos (
pk_produtos int not null auto_increment primary key,
codigo     varchar(255),
nome       varchar(255),
preco      decimal(12,2),
quantidade int(11))";

if(!mysql_query($query,$conexao)) {
echo 'falha ao criar tabela<br />';
die; // Com o die eu já paro de executar o script caso ocorra erro.
}

// É possivel verificar todos os valores do POST usando a função var_dump($_POST);
// Basta tirar o comentario # para debugar.

// a tag pre serve para pre formatar o texto - irá manter a quebra de linha e espaços. Facilita na hora de debugar.
#echo '<pre>';
#var_dump($_POST); die;
#echo '</pre>';

/*Pego os valores do POST do formulario HTML e seto nas variaveis.
É necessario fazer a validação dos dados para evitar ataques SQL Injection ou HTML Injection quando estiver
em ambiente de produção.
Neste exemplo estou fazendo sem qualquer tipo de validação para simplificar o entendimento.*/
$codigo = $_POST['codigo'];
$nome = $_POST['nome'];
$preco = $_POST['preco'];
$quantidade = $_POST['quantidade'];

$query_insert = "INSERT INTO tb_produtos (codigo,nome,preco,quantidade) VALUES
('$codigo','$nome',$preco,$quantidade)";

if(mysql_query($query_insert,$conexao)) {
echo 'Dados inseridos com sucesso<br />';
} else {
echo 'falha ao inserir dados<br />';
}
// Caso POST false mostra HTML
} else {
?>
<html>
<head>
<title>Formulário de Produtos</title>
</head>
<body>
<form action="cadastrar.php" method="post">
<label for="codigo">
<span >Código</span>
<input id="codigo" class="text" type="text" value="" maxlength="255" title="Código" name="codigo" tabindex="1"/>
</label><br />
<label for="nome">
<span >Nome</span>
<input id="nome" class="text" type="text" value="" maxlength="255" title="Nome" name="nome" tabindex="2"/>
</label><br />
<label for="preco">
<span class="nameField">Preço</span>
<input id="preco" class="text" type="text" value="" maxlength="12" title="Preço" name="preco" tabindex="3"/>
</label><br />
<label for="quantidade">
<span class="nameField">Quantidade</span>
<input id="quantidade" class="text" type="text" value="" maxlength="11" title="Quantidade" name="quantidade" tabindex="4"/>
</label><br />
<label for="cadastrar">
<input type="submit" id="cadastrar" name="cadastrar" tabindex="5" value="cadastrar" />
</label>
</form>
</body>
</html>
<?php
}

?>

Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­rias aqui apresentados.

Com­par­ti­lhe com seus ami­gos:
  • Print
  • Facebook
  • Google Bookmarks
  • PDF
  • RSS
  • Twitter
  • LinkedIn



View Comments to “Pegar dados via POST e inserir no banco de dados MySQL com PHP”

  1. Phaneronsoft » Blog Archive » Fazer consulta no MySQL e formatar ResultSet usando PHP e HTML Says:

    […] con­ti­nui­dade ao ultimo post Pegar dados via POST e inse­rir no banco de dados MySQL com PHP. Agora vamos mos­trar os dados inse­ri­dos. Desta vez usei CSS para que o resul­tado fique um pouco […]

  2. JOEL Says:

    Vc nao tem um exem­plo desse,mas com o banco post­gre­esql? Só mudando para pgsql fun­ci­ona? tenho que criar o banco primeiro?

  3. Marcelo Korjenioski Says:

    Neste PHP.net você irá encon­trar uma expli­ca­ção de como usar o pg_connect. Irá mudar pouca coisa assim que tiver um tempo eu crio um tuto­rial de como usar o PG. Obri­gado pela pergunta.

Deixe um comentário

blog comments powered by Disqus
Designed by NattyWP Wordpress Themes.
Images by desEXign.