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

Falha com o comando de execução da QUERY (mysqli_query)

Eu fiz a página para incluir o produto, mas a página está retornando erro, mas a mensagem de incluído com sucesso é exibida e o produto não é incluído.

Mensagem do erro:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\loja\adiciona-produto.php on line 10

Warning: mysqli_close() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\loja\adiciona-produto.php on line 12

Página Completa (adiciona-produto.php)

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

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysql_connect('localhost', 'root', '', 'loja');

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

mysqli_close($conexao);

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

<?php include("rodape.php"); ?>
7 respostas

Modifiquei o código para verificar o erro, mas agora apenas aparece o erro:

Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\loja\adiciona-produto.php on line 9

E o código novo, ficou assim

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

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysql_connect('localhost', 'root', '', 'loja');

$query = "insert into produtos (nome, preco) values ('{$nome}',{$preco})";
if (mysqli_query($conexao, $query) { ?>
    <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php } else { ?>
    <p class="alert-success">Produto <?= $nome; ?> não foi adicionado!</p>
<?php } ?>

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

Carlos,

No seu if falta um parenteses. Corrija e teste novamente.

Veja tambem se o tipo de dado da tabela que criou esta correto. nome é string e preço numérico.

O SQL ficou assim:

insert into produtos (nome, preco) values ('lápis',1.00)

E rodando ele no MySQL funciona.

Arrumei o código e retorna o erro abaixo:

Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\loja\adiciona-produto.php on line 9

Parece que tem algum problema com o comando do mysqli_query().

Estou utilizando o XAMPP, na versão 3.2.2, no Windows 10, 64 bits.

Pode ter alguma diferença na chamada do comando?

E os campos estão iguais ao que foi proposto.

Você corrigiu este trecho?

if (mysqli_query($conexao, $query) { ?>

para

if (mysqli_query($conexao, $query)) { ?>

sim!! ficou assim:

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

<?php
$nome = $_GET["nome"];
$preco = $_GET["preco"];
$conexao = mysql_connect('localhost', 'root', '', 'loja');

$query = "insert into produtos (nome, preco) values ('{$nome}',{$preco})";
if (mysqli_query($conexao, $query)) { ?>
    <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php } else { ?>
    <p class="alert-success">Produto <?= $nome; ?> não foi adicionado!</p>
<?php } ?>

<?php include("rodape.php"); ?>
solução!

Carlos,

Muda tambem a conexão

De: mysql_connect Para: mysqli_connect

Bah! Tchê! Tinha revisado várias vezes.

E aí dá para ver o poder de um simples "i".

Funcionou.

Falha de verificação no código mesmo.