Clipper On Line • Ver Tópico - Select parece certo mas dá erro
Página 1 de 1

Select parece certo mas dá erro

MensagemEnviado: 02 Mai 2017 23:37
por ricardo-barros
Olá colegas.
Após décadas programando em xBASE (desde o dBASE II até o Harbour) resolvi aprender PHP.
No momento estou fazendo um CRUD e me deparei com um erro de sintaxe.
Quando eu clico num link chamado editar que me leva ao script editar.php conforme se pode ver abaixo
<a href = editar.php?editar='3'>editar</a>

<?php
   $host = "localhost";
   $login = "root";
   $senha = "";
   $banco = "alunos";

   $con = mysqli_connect($host, $login, $senha, $banco);
   mysqli_select_db($con, $banco);

   $var = mysqli_close($con);
?>

uma variável chamada editar vai contendo o id do registro a ser editado (3):
<?
include_once 'conexao.php';
$sql = "SELECT * FROM cadastro WHERE id='".$_GET['editar']."'";
echo $sql;
$result = mysqli_query($con, $sql);
if($result === false)
  echo mysqli_error($con);
else
  $linha = mysqli_fetch_array($result);
?>

<p>Editar</p>
<form action = "evento.php?editar=<? echo linha['id']; ?>" method = "post">
   <input type = "text" name = "nome" value = "<? echo $linha['nome']; ?>"><br>
   <input type = "text" name = "telefone" value = "<? echo $linha['telefone']; ?>"><br>
   <input type = "submit" value="Editar">
</form>
<a href = "index.php">Voltar</a>

Vejam que eu chego a exibr o conteúdo da variável $sql ou seja:
SELECT * FROM cadastro WHERE id="3"

Parece certo não é? Mas na hora de executar o mysqli_query dá o seguinte erro:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB

Alguém pode ajudar a resolver este mistério?

Select parece certo mas dá erro

MensagemEnviado: 03 Mai 2017 08:43
por Toledo
Amigo, no final do seu arquivo conexao.php você esta usando o comando:

$var = mysqli_close($con);

Você está fechando a conexão. Então acho que o problema está ai, pois com a conexão encerrada não tem como usar o SELECT.

Abraços,

Select parece certo mas dá erro

MensagemEnviado: 03 Mai 2017 12:36
por ricardo-barros
Comentei a linha que fecha a conexão mas o erro continua o mesmo.
Na verdade eu já tinha testado isso antes de postar o tópico pois o erro que aparece é de sintaxe e é isso que não faz sentido.

Select parece certo mas dá erro

MensagemEnviado: 03 Mai 2017 16:11
por Toledo
Então, no seu SELECT esta usando WHERE id="3", será que id é mesmo uma string (caracter)?

Abraços,

Select parece certo mas dá erro

MensagemEnviado: 04 Mai 2017 13:10
por ricardo-barros
Toledo, você descobriu o problema: eu estava passando o id entre apóstrofos.

Só não entendo por que eles não dão problema nesta outra query:
$sql = "DELETE FROM cadastro WHERE id = '3' ";


Obrigado pela ajuda.