Clipper On Line • Ver Tópico - Select parece certo mas dá erro
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Select parece certo mas dá erro

02 Mai 2017 23:37

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
Código:
<a href = editar.php?editar='3'>editar</a>

Código:
<?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):
Código:
<?
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:
Código:
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

03 Mai 2017 08:43

Amigo, no final do seu arquivo conexao.php você esta usando o comando:

Código:
$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

03 Mai 2017 12:36

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

03 Mai 2017 16:11

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

04 Mai 2017 13:10

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:
Código:
$sql = "DELETE FROM cadastro WHERE id = '3' ";


Obrigado pela ajuda.
Postar uma resposta