Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ren#

[Resolvido] Erro PHP/ MySQL - I NSERT INTO

Recommended Posts

Boa tarde..

 

Bom, sou novo no forum e também na linguagem de php.. e estou desde ontem tentando fazer um cadastro simples, só pra teste e pra eu conseguir entender como funciona a inserção de informações no banco de dados através do PHP, mas não estou conseguindo... será que alguém poderia analizar o meu código e dar uma dica de porque eu estar errando?

 

PS. Lembrando que eu uso o EasyPHP 2.0.0.0

 

Os códigos são os seguintes:

 

1 - Corpo da Página: index.php

 

<html>
<head>

<h1>Cadastre-se aqui...</h><title>Cadastro</title></head>
<body>
<form method="POST" action="include.php">
<table border=0>
<tr><td>Nome:</td><td><input name="nome" id="nome" type="text" style="width: 350px"></td></tr>
<tr><td>Cargo:</td><td><input name="cargo" id="cargo" type="text" style="width: 350px"></td></tr>
<tr><td>E-mail:</td><td><input name="mail" id="mail" type="text" style="width: 350px"></td></tr>
<tr><td colspan=2><input type="submit" value="Enviar Dados."></td><td></td></tr>
</table>
</form>

</body>
</html>

Página simples com apenas 3 campos onde devem ser ser inseridas as informações que serão gravadas no banco de dados.

 

2 - Configurações de conexão com o banco de dados: config.php

<?php

$host = "localhost"; 
$user = "root";
$pass = "";
$db = "cadastro"; 
$a = mysql_connect($host, $user, $pass) or die(mysql_error());
@mysql_select_db($db, $a) or die("erro ao se conectar com o db");

?>

3 - Aqui é a parte onde as informações deveriam ser inseridas no banco de dados: include.php

 

<?php

include "config.php";

$nome = $_POST['nome'];
$cargo = $_POST['cargo'];
$mail = $_POST['mail'];

$x = mysql_query("INSERT INTO usuario('NOME', 'CARGO', 'MAIL') VALUES('$nome', '$cargo', '$mail')");

if($x){echo"o cadastro foi feito com sucesso";// verificamos se os dados doi inserido se for ele executa o echo
}else{
echo"o cadastro nao pode ser efetuado";
}  //se o arquivo nao for inserido 

echo "<br><br>$_REQUEST[nome], $_REQUEST[cargo], $_REQUEST[mail]";

?>

 

O bando de dados ja foi criado, tem uma tabela de nome "cadastro" com 3 campos tipo VARCHAR(50): nome, cargo, mail.

 

Como vocês podem notar eu fiz um "if" para caso aconteça um erro na inserção ele me retorne uma mensagem de erro.. que é a mensagem que aparece e os dados não são inseridos no banco de dados... alguem pode me ajudar com esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?

/* o Primeiro passo é usar o addslashes para que não haja engraçadinhos usando sql injection no seu cadastro */

$nome = addslashes($_POST['nome']);

$cargo = addslashes($_POST['cargo']);

$mail = addslashes($_POST['mail']);

 

/* Suponho que você tenha um campo ID Auto Increment */

$x = mysql_query("INSERT INTO usuario VALUES(NULL,'$nome', '$cargo', '$mail')");

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, deu certo!

Muito obrigado mesmo.

 

Bom.. como eu falei ainda sou novo em PHP, não conhecia esse recurso do "addslashes", como ele funciona?

 

E como você disse, realmente eu tinha colocado um campo ID na minha tabela, só que como eu coloquei ele como auto-incremental eu achei que não precisaria ter colocado nada no código em PHP, foi esse meu erro? Ou foi o código que estava errado mesmo, por que o meu INSERT INTO estava diferente do seu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.