Ir ao conteúdo
  • Cadastre-se
Raphael Weber

Erro no insert do banco de dados

Recommended Posts

Galera, boa tarde, gostaria da ajuda de vocês.

Alguém sabe porque estou recebendo a mensagem "ERRO AO CADASTRAR"? Acho que é na função create mas não estou achando

 

segue o print.

segue o codigo:

<?php
const HOST = 'localhost';
const USER = 'root';
const PASS = '';
const DBSA = 'log_sys';
@$link = mysqli_connect(HOST,USER,PASS,DBSA);
if($link): echo 'Conectado com sucesso';
else: echo 'Erro ao conectar'.mysqli_conncet.error;
endif;

echo '<hr />';

//CREATE
$nome = 'Wanderson';
$email = 'wanwan@hotmail.com';
$senha = 'wanwan123';
$tabela = 'usuario';
$queryCreate = "INSERT INTO {$tabela} (nm_usuario,email_usuario,senha_usuario) VALUES ('$nome','$email,'$senha')";
$create = mysqli_query($link,$queryCreate);
if($create): echo 'Cadastro com sucesso';
else: echo'Erro ao cadastrar';
endif;
echo'<hr />';

//UPDATE
$novoNome = $nome. 'Prudencio';
$tabela = 'usuario';
$queryUpdate = "UPDATE {$tabela} SET nm_usuario = 'novoNome' WHERE nm_usuario = '$nome'";
$update = mysqli_query($link,$queryUpdate);
if($update): echo mysqli_affected_rows($link).' registros atualizados com sucesso';
else: echo'Erro ao atualizar';
endif;
echo'<hr />';

//DELETE

$queryDelete = "DELETE FROM {$tabela} WHERE id_usuario = 3";
$delete = mysqli_query($link,$queryDelete);
if($delete): echo mysqli_affected_rows($link).' registros removidos com sucesso:';
else: echo 'Erro ao deletar: '.mysqli_error($link);
endif;

echo'<hr />';

//READ
$queryRead = "SELECT *FROM usuario";
$read = mysqli_query ($link,$queryRead);
if($read): foreach ($read as $res): extract($res);
echo $id_usuario." - ".$nm_usuario." - ".$email_usuario .'<br />';
endforeach;
else: echo 'Erro ao ler: '.mysqli_error($link);
endif;
?>

 

db.png

erro.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimenta retirar as chavetas (i. e., { e } em torno do nome da tabela), passando a (por exemplo):

 

INSERT INTO $tabela (nm_usuario,email_usuario,senha_usuario) VALUES (...)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Raphael Weber ta certo em '$email'  , nao estar fechando a Aspa ?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Raphael Weber 

Olá, creio que o erro no seu código é porque está faltando uma aspas simples no value de sua SQL.

 VALUES ('$nome','$email,'$senha')";

 

Troca para

 VALUES ('$nome','$email','$senha')";

 

Contudo recomendo fazer de forma mais simples sem enfeitar muito.

Sugiro você alterar também algumas coisas como:

Não usar o CONST e o "@"  na frente da variável. 

Separa a conexão do arquivo...  

crie um conexao.php 

<?php
     $link = mysqli_connect("localhost","root","","log_sys");
//CREATE
$nome = 'Wanderson';
$email = 'wanwan@hotmail.com';
$senha = 'wanwan123';
$tabela = 'usuario';

include 'conexao.php';


$QueryCreate = mysqli_query($link, "INSERT INTO usuario(nm_usuario, email_usuario, senha_usuario) VALUES ("$nome","$email","$senha")");
if($QueryCreate): echo 'Cadastro com sucesso';
else: echo'Erro ao cadastrar';
endif;
echo'<hr />';

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dif, agora funcionou, obrigado realmente estranho, pra mim tinha colocado aspas simples ( ' ' ) ao olhar sua resposta não vi diferença, só que a variavel $senha ficou verde kkkkkkkkkkkkkkkkkkkkkkkk, mas enfim obrigado.

 

 

Aproveito para tirar outra duvida:

Como posso passar esse crud para um formulário?

 

alem de linkar os names do formulario depois disso terei que fazer um sistema de login e senha, não sei o que fazer com esse crud agora... como poderia adapta-lo para um formulario html?

 

Obrigado. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Raphael Weber

Então, o crud pode ser adaptador facilmente.

Veja que nele você usou variáveis estáticas. 

No caso, você substitui o valor das variáveis pelo valor do formulário $_POST["campo"].

 

SE você quiser aproveitar o mesmo arquivo php para mais de uma ação, você precisa  informar o tipo da ação, isso pode ser feito de "N" formas:

Uma é usando um campo hidden para passar a ação, outra é por parâmetro... Eu prefiro recomendar que você separe em vários arquivos menores um para cada ação, é mais fácil de não se perder ou dar erro.

Mas se você realmente quiser fazer tudo em um lugar só..  tente desta forma:

 

Formulário:

<form action="processaAlgo.php" method="post">
  <input type="text" name="nome" placeholder="Nome" />
  <input type="text" name="email" placeholder="E-mail" />
  <input type ="hidden" name="acao" value="cadastro" />
  <input type="submit" value="Cadastrar" /> 
</form> 

Veja que ele possui um campo hidden com o valor "cadastro"

 

Agora no php chamado processaAlgo.php   você recebe desta forma:

//Recebe os dados do formulário
$nome = $_POST["nome"]
$email = $_POST["email"];
$acao = $_POST["acao"];

//inclui a conexao
include 'conexao.php';

//Testa a ação
if($acao == "cadastro"):
  //faz a instrução de inserção  

   $QueryCreate = mysqli_query($link, 'INSERT INTO usuario(nm_usuario, email_usuario, senha_usuario) VALUES ("$nome","$email")');
   if($QueryCreate): echo 'Cadastro com sucesso';
   else: echo'Erro ao cadastrar';
   endif;
   echo'<hr />';

else if($acao == "editar"):
  //faz a instrução de edição

else if($acao == "deletar"):
  //faz a instrução de deleção

endif;

Podes fazer também com switch case se não quiser usar esse monte de IF e else...

Contudo, a melhor opção para você que está iniciando é fazer tudo separado.. criar um arquivo cadatro.php, outro editar.php, e outro deletar.php .. com seus respectivos códigos.

 

PS: para editar, e apagar é preciso informar o ID do registro. Nesse caso, quando for listar, é necessário que retorne do banco o valor ID auto incrementado e passa-lo por parâmetro via GET.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×