Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal !
O que está errado ?
Estou trazendo da base de dados.
$consulta = $pdo->prepare("SELECT id, nome, senha FROM usuarios where usuario = :usuario;");
$consulta->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$consulta->bindParam(':nome', $_GET['nome'], PDO::PARAM_STR);
$consulta->bindParam(':usuario', $_GET['usuario'], PDO::PARAM_STR);
$consulta->execute();
$linha = $consulta->fetch(PDO::FETCH_ASSOC);
Não está retornando os valores solicitados.
echo "Id:" .$linha["id"]. "<br/>";
echo "Usuário:" .$linha["usuario"]. "<br/>";
echo "Nome:" .$linha["nome"]. "<br/>";Obrigado Gabriel.
Estou usando assim, mas a único retorno do echo são os títulos. Na minha base tenho 2 usuários apenas. Só para teste.
<?php
(...) aquí eu verifico a sessão...
//Conecta o banco de dados e já faz o tratamento mencionado.
include("conexao.php");
$pdo=conectar();
try {
$consulta = $pdo->prepare("SELECT id, nome, senha FROM usuarios where usuario = :usuario;");
$consulta->bindParam(':usuario', $_GET['usuario'], PDO::PARAM_STR);
$consulta->execute();
$linha = $consulta->fetch(PDO::FETCH_ASSOC);
/** importante fechar o cursor do statement uma vez que o dados foram retornados **/
$consulta->closeCursor();
echo "Id:" .$linha["id"]. "<br/>";
echo "Usuário:" .$linha["usuario"]. "<br/>";
echo "Nome:" .$linha["nome"]. "<br/>";
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>Testando essa query diretamente no SGBD funciona corretamente?
Tranquilo Gabriel. Funcionou.
A sessao do usuário por algum motivo desconhecido não estava sendo reconhecida. Matei o navegador e reiniciei os serviços e funcionou. Coisa de aprendiz.
Valeu !
1. Verificou se tem algum registro no banco?
2. Caso tenha, o erro pode ser na sua conexão, já verificou?
3. utilize o seguinte formato:
<?php
$id = $_GET['id'];
$sql = "SELECT id, nome, senha FROM USUARIO where id = :id";
$stmt = $pdo->prepare($sql);
$stmt->execute(array('id' => (int) $id));
return $stmt;
?>Dentro do bindParam você não pode colocar diretamente o method e necessário colocar em uma variável.
Primeiramente você está usando o $_GET o method do seu form e GET se for não tem erro, caso contrario a recuperação e via $_POST e não $_GET.
você está usando o
$consulta = $pdo->prepare("SELECT id, nome, senha FROM usuarios where usuario = :usuario;");
$consulta->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$consulta->bindParam(':nome', $_GET['nome'], PDO::PARAM_STR);
$consulta->bindParam(':usuario', $_GET['usuario'], PDO::PARAM_STR);
$consulta->execute();
$linha = $consulta->fetch(PDO::FETCH_ASSOC);
$pdo a mesmo está recebendo a instancia do PDO?
usando uma função ou uma class com o padrão singleton?
Primeiramente, se é uma consullta, o único dado necessário é usuário.
Tem certeza que não está ocorrendo nenhum erro? Pois deveria lançar algum erro sobre parâmetro não encontrado.
Na hora de criar sua conexão, adicione a opção para tratar erros como exceções:
try {
} catch(PDOException $e){
E na hora de realizar a consulta:
try {
} catch(PDOException $e) {
Também é importante fechar o cursos, vide o manual.