Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Nao consigo conectar ao banco de dados mysql

Ao adicionar o produto através do formulário, recebo somente a mensagem de "Produto não foi adicionado"... não está incluindo no banco de dados, noa consegui localizar o erro

adiciona-produto.php

<?php include("cabecalho.php"); ?>
<?php include("conecta.php");
function insereProduto($conexao, $nome, $preco) {
    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";
    return mysqli_query($conexao, $query);
}
$nome = $_GET['nome'];
$preco = $_GET['preco'];
if(insereProduto($conexao, $nome, $preco)) { ?>
    <p class="text-success">O produto <?= $nome ?>, <?= $preco ?> foi adicionado.</p>
<?php } else {
    $msg = mysqli_error($conexao);
?>
    <p class="text-danger">O produto <?= $nome ?> não foi adicionado. <?= $msg?> </p>
<?php
}    
?>
<?php include("rodape.php"); ?>

**produto-lista.php*

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

$resultado = mysqli_query($conexao, "select * from produtos");
while($produto = mysqli_fetch_assoc($resultado)) {

    echo $produto['nome'] . "</br>";
}
?>          
<?php include("rodape.php"); ?>

conecta.php

<?php
$conexao = mysqli_connect("localhost", "root", " ", "loja" );
5 respostas

Oi Fabio, tudo bem? Os Produtos que já estão no banco, são listados normalmente? Se sim, podemos descartar a ideia de que a conexão com o banco tem problemas.

Testa por um ; dentro da query. Já tive problemas com isso. Sua query então deve ficar dessa forma:

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

Boa Wanderson, como vai? Não cara, não são listados... testei por ";" dentro da query, mesmo resultado. Nao lista e quando adiciono vai sempre pro "else", "produto nao adicionado"

Fabio, acredito que possa sua sua conexão com o Banco de Dados. Esses dados estão corretos?

mysqli_connect("localhost", "root", " ", "loja" );

Perceba que entre as aspas de senha, há um espaço. O Espaço não necessariamente é vazio. Em algum ponto ele pode ser considerado um caractere.

Teste remover este espaço caso sua senha seja vazia. Ficando dessa forma:

mysqli_connect("localhost", "root", "", "loja" );

Agora outra questão, seu MySQL está funcionando? Já conectou o mesmo pelo terminal por exemplo? Ou até mesmo usando o PHPMyAdmin?

Bom dia Wanderson, sim o mysql está funcionando certinho, abre o phpmyadmin... tirei o espaço entre as aspas, como voce sugeriu, mesmo resultado. Sim, os dados estão corretos, já verifiquei, deletei e fiz do zero... bucha (risos)

solução!

Hm, estranho, aparentemente seu código não tem erros. Faz o seguinte, cria um zip da pasta do seu projeto e me envia em: wanderson.sabino@alura.com.br

Caso eu encontre o problema te respondo por aqui mesmo.