7
respostas

Erro na hora de adicionar um produto de um formulário

Na parte 2 do curso, bem no começo assim logo que criei minha conexão.

Meu Código:

<?php include  ("cabecalho.php") ?>

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

$conexao = mysqli_connect('localhost', 'root', '', 'loja');
mysqli_query($conexao, $query);
mysqli_close($conexao);
?>
<p class="alert-success">Produto <?php echo $nome; ?>, <?php echo $preco; ?> adicionado com sucesso</p>

<?php include ("rodape.php") ?>

Erro Gerado pelo MySQL:


Warning: mysqli_connect(): (HY000/1049): Unknown database 'loja' in /opt/lampp/htdocs/loja/adiciona-produto.php on line 8

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /opt/lampp/htdocs/loja/adiciona-produto.php on line 9

Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in /opt/lampp/htdocs/loja/adiciona-produto.php on line 10
7 respostas

Oi Yuri, tá parecendo que o banco de dados não existe, você criou o banco de dados?

Sim, segue abaixo os bancos de dados que existem:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| controle_compras   |
| loja               | <---------------
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.04 sec)

A conexão no PHP está sendo realizada com o mesmo servidor que você realizou para obter esta saída?

Você utiliza (X|W|M)AMPP?

os codigos estao fora de ordem.

tenta monta ele assim pois e depura o seu codigo parte por parte para você entender como ele é lido pelo seu navegador.

<?php include  ("cabecalho.php") ?>

<?php

$conexao = mysqli_connect('localhost', 'root', '', 'loja');

$nome = $_GET["nome"];
$preco = $_GET["preco"];

$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
mysqli_query($conexao, $query);
mysqli_close($conexao);

?>

<p class="alert-success">Produto <?php echo $nome; ?>, <?php echo $preco; ?> adicionado com sucesso</p>

<?php include ("rodape.php") ?>

Também estou com o mesmo erro. Até dado momento não consegui resolver

Tentem dar um var_dump($conexao) e cola o resultado aqui pra gente ver. Por algum motivo a conexão parece não estar sendo feita ou o banco não selecionado. Tentem também fazer algo do tipo:

$conexao = mysqli_connect('localhost', 'root', '', 'loja');
if(!$conexao){
    echo mysqli_error($conexao);
    die();
}

Boa tarde, eu estava com o mesmo problema e consegui resolver,

no meu caso eu estava fazendo o banco de dados no MariaDB, porém o professor ensina para o MySQL.

Quando entrei no banco MySQL vi que não havia nenhum banco 'loja', basta cria-lo e já era.

Espero ter ajudado.