Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
A conexão esta em outra classe e esta funcionando certinho, mas o select não funciona.
<?php
public function consulta(){
$pdo = parent::getDB();
$consulta = $pdo->prepare("SELECT * FROM Usuario");
$consulta->execute();
$linha = $consulta->fetchAll(PDO::FETCH_ASSOC);
foreach($consulta as $nomeusuario){
echo $nomeusuario['NomeUsuario'];
}
?>Fiz o que esta estava no Tópico, mas o resultado do select vem em branco e não da erro.
já conferir o nome do banco e da coluna, esta correto.
Habilitou os erros conforme a recomendação do @Beraldo?
coloca isso antes do foreach:
$result = $consulta->execute();
if ( ! $result )
{
var_dump( $consulta->errorInfo() );
exit;
}Ruan coloquei o código, ele não mim retornei erro, e pagina retorna branca.
$pdo = parent::getDB();
try{
$consulta = $pdo->prepare("SELECT * FROM Usuario");
$result = $consulta->execute();
if ( ! $result )
{
var_dump( $consulta->errorInfo() );
exit;
}
foreach($consulta as $nomeusuario){
echo $nomeusuario['NomeUsuario'];
}
}catch (PDOException $e) {
echo "Erro: ".$e->getMessage();
}
}
}>
A conexão esta em outra classe e esta funcionando certinho, mas o select não funciona.
<?php
public function consulta(){
$pdo = parent::getDB();
$consulta = $pdo->prepare("SELECT * FROM Usuario");
$consulta->execute();
$linha = $consulta->fetchAll(PDO::FETCH_ASSOC);
foreach($consulta as $nomeusuario){
echo $nomeusuario['NomeUsuario'];
}
?>
No seu primeiro post, você cria o array associativo na variável $linha e no foreach você joga a $consulta... modifique seu foreach para $linha também :D
foreach($linha as $nomeusuario){
Fiz assim, continua a mesma coisa sem retorno algum.
<?php
ini_set('display_errors', true); error_reporting(E_ALL);
require_once 'conexao.php';
class Agendamento extends DataBase{
private $nomeusuario;
public function setNomeUsuario($nomeusuario){
$this->nomeUsuario = $nomeusuario;
}
public function getNomeusuario($nomeusuario){
return $this->nomeusuario = $nomeusuario;
}
public function consulta(){
$pdo = parent::getDB();
$consulta = $pdo->prepare("SELECT * FROM Usuario");
$consulta->execute();
while($nomeusuario = $consulta->fetch(PDO::FETCH_ASSOC)){
echo "nome: ".$nomeusuario['NomeUsuario'];
}
}
}
?>Faz assim :)
<?php
ini_set('display_errors', true); error_reporting(E_ALL);
require_once 'conexao.php';
class Agendamento extends DataBase{
private $nomeusuario;
public function setNomeUsuario($nomeusuario){
$this->nomeUsuario = $nomeusuario;
}
public function getNomeusuario($nomeusuario){
return $this->nomeusuario = $nomeusuario;
}
public function consulta(){
$pdo = parent::getDB();
$sql = "SELECT * FROM Usuario";
$result = $pdo->query($sql);
while($nomeusuario = $result->fetch(PDO::FETCH_ASSOC)){
echo "nome: ".$nomeusuario['NomeUsuario'];
}
}
}
?>@Ruan Silva, testei com seu código mas não funcionou, fiz uns teste aqui trocando o nome da tabela e da coluna, mas ele mim retorna em branco e sem erro, vou olhar aqui eu acho que o problema não é código não, ser puder fala algo sobre agradeço, desde já obrigado.
Duas perguntas:
1. Se executar a query direto no MySQL, vem resultado?
2. Como e onde você está chamando o método consulta()?
Bom dia Ruam, Ser pesquisa direto no MYSQL, funciona sim, eu só tenho 2 classe a de conexão e a do select.
<?php
//Conexao
abstract class DataBase {
const user = "root";
const pass = "";
private static $instance = null;
private static function conectar(){
try {
if (self::$instance == null):
$dsn = "mysql:host=localhost;dbname=teste";
self::$instance = new PDO($dsn, self::user, self::pass);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
endif;
} catch (PDOException $e){
echo "Erro: ".$e->getMessage();
}
return self::$instance;
}
protected static function getDB(){
return self::conectar();
}
}
?>
//select
<?php
require_once 'conexao.class.php';
class Agendamento extends DataBase{
private $nomeusuario;
public function setNomeUsuario($nomeusuario){
$this->nomeUsuario = $nomeusuario;
}
public function getNomeusuario($nomeusuario){
return $this->nomeusuario = $nomeusuario;
}
public function consulta(){
$pdo = parent::getB();
$sql = "SELECT * FROM Usuario";
$result = $pdo->query($sql);
while($nomeusuario = $result->fetch(PDO::FETCH_ASSOC)){
echo "nome: ".$nomeusuario['nome'];
}
}
}
?>A questão ainda é a miha segunda pergunta:
Como e onde você está chamando o método consulta()?
Mostre como está a chamada. Deve haver algum erro ali
Vlw Ruam, resolver aqui estava chamando o método errado mesmo, obrigado pela sua atenção.
O que é "não funciona"?
Explique melhor o que acontece
Habilite todas as exibições de erro, como mostrado neste tópico, na Orientação No. 2, faça debug da query, como mostrado nesse mesmo tópico. Siga as orientações para descrever melhor seu problema