Ir para conteúdo
Fórum Script Brasil
  • 0

[RESOLVIDO]sem retorno de Array (PDO)


JaguA

Pergunta

Ola a todos ...

Seguinte tenho a classe model com os metodos basico e estou tendo problema quando levo para o servidor online. acredito que possa ser questão de alguam configuração do servidor até, mas como não tenho outro servidor para testar vou postar aqui talvez seje outra coisa.

Metodo read da classe Model.

public function read( $where = null, $limit = null, $offset = null, $orderby = null ) {
                
            $where = ($where != null ? " WHERE ". $where : " ");
            $limit = ($limit != null ? " LIMIT ". $limit : " ");
            $offset = ($offset != null ? " WHERE ". $offset : " ");
            $orderby = ($orderby != null ? " ORDER BY ". $orderby : " ");
            $sql = " SELECT * FROM `{$this->_table}` {$where} {$orderby} {$limit} {$offset} ";
            
            $qry = $this->db->prepare($sql);
            $num = $qry->execute();
            
            if($num) {
                $retorno = $qry->fetchAll();
                var_dump($retorno); break;
                return $retorno;
             } else {
                 return 'Não foi encontrado registros';
             } 
        }
Model financeiro
<?php
    class financeiroModel extends Model {
        
        public $_table = 'contas';
        
        public function seleciona ($where = null,$limit = null,$orderby = null) {
            
            return $this->read($where,$limit,null,$orderby);
            
        }
    }
Controller de Secao
<?php
    class Secao extends Controller {
        
        public function init() {
                
            $this->bd_avisos = new avisosModel();
            $this->bd_financeiro = new financeiroModel();
        }
        
        public function index_action(){
            
                    
        }
        
        public function  avisos () {
            
            $dados['dados'] = $this->bd_avisos->seleciona();
            
            $this->view('secao/avisos',$dados,'blog');
            
        }
        
        public function contas () {
            
            $dados['dados'] = $this->bd_financeiro->seleciona();
            
            $this->view('secao/financeiro',$dados,'blog');
            
        }
        
            
        
    }
View
<?php  foreach ($view_dados as $row) {   
        echo "<p><a href='/contas/index/prestacao/{$row['id']}'> {$row['titulo']} </a></p><br>"; 
     
         }
var_dump($row); break;

?>

Bem na view não tive retorno algum no servidor Online então dei Var_dump pagina por pagina e ela sempre retorna 0.

se eu dr var_dump no prepare ele me retorna o Objeto.

mas apos passar pelo fecthAll() fica zerado

LEMBRANDO em meu computador funciona perfeitamente... eu trabalho com o hosting virtual do apache.

e ai o que acha que pode ser?

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Bom,

Tenta o seguinte:

você já verificou se as informações para conexão com com banco estão corretas?

Insira a função error_reporting para exibir todos os erros.

error_reporting(E_ALL);
você pode debugar seu codigo dando um echo na variável $sql e verificar se sua app está gerando a query corretamente.
$sql = " SELECT * FROM `{$this->_table}` {$where} {$orderby} {$limit} {$offset} ";
echo $sql; exit();

Abraço!

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde

Romero,

Bem, eu já dei echo na string que é montada e sim está montando corretamente.

vou por o error_reporting e ve se consigo algo.

Bem, fiz o teste aqui o site continuando abrindo normalmente mas sem nenhum dado e se quer algum erro para ajudar esclarecer o que pode estar acontecendo, a unica coisa que me vem em mente é alguma configuração do servidor.

fiz uma conexão basica e um select logo depois dela em um unico arquivo para ve se retornava algo e permanece o mesmo erro.

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

  • 0

Bom, pode ser que o php.ini deste server esteja setado para não printar mensagens de erro.

Para verificar se a diretiva de exibição de erros esta chaveada para off, faça o seguinte:

echo (int)ini_get('display_errors');
Para setar esta diretiva para on, faça o seguinte:
ini_set('display_errors', 1);
você também pode criar um script contendo a funçao
phpinfo();
Execute o script e você deverá ver uma seção do PDO e seus drivers, verifique se o driver que você utiliza está presente. você também pode criar um script contendo o trecho abaixo:
if (!defined('PDO::ATTR_DRIVER_NAME')) { 
echo 'PDO unavailable'; 
} 
elseif (defined('PDO::ATTR_DRIVER_NAME')) { 
echo 'PDO available'; 
}

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe a demora em responder.

Bem fiz os teste verificando tudo isso o resultado de todos foram positivos os drivers estão corretos display errors estão ativados...

certo eu tentei de outra forma ao invez do fetchAll() eu tentei com o fetch(PDO::FETCH_OBJ))

e também não tive resultados com toda certeza deve ser alguma coisa errada de minha parte porque não faz sentido tudo está funcionando e o sistema não me da um retorno eu so fico muito curioso com realação a funcionar tudo sem problemas em localhost.

Link para o comentário
Compartilhar em outros sites

  • 0

você já fez um teste básico, assim:

$dsn = "mysql:host=localhost;dbname=test";
$username = "XXXXXX";
$password = "YYYYYY";

try {
    $pdo = new PDO($dsn, $username, $password);

    $stmt = $pdo->prepare("SELECT * FROM clientes");
    $stmt->execute();
    print_r($stmt->fetchAll());
}
catch(PDOException $e) {
    die("Não foi possível conectar no banco de dados\n");
}

Link para o comentário
Compartilhar em outros sites

  • 0

Já sim Romero, agradeço imensamente a sua ajuda, mas já descobri o erro.

é algo muito besta e que ao descobrir fiquei com os nveros alem da flor da pele...

este sistema já estava em funcionamento eu somente estava atualizando com MVC e PDO tirando do modo estrutural e tudo mais, então simplesmente peguei o antigo joguei dentor de uma pasta e upei o novo e não funciono e eu também não vi como tava o antigo, sendo assim simplesmente fiquei contrariado de não mostrar nenhum dados e não ter retornos nos testes dos Fetch, então extrai o Banco de Dados e levei para outro servidor e o mesmo problema ficou persistindo, depois dessa maratona de duelos resolvi ver se existia algum dados nesse outro servidor eis que descobri que não tinha nada cadastrado fiz alguns cadastro e funcionou perfeitamente, então pensei bem eu alteri algumas coisas aqui eu altro la vai aparece então porque aqui ta sem dados e la no servidor original ta tudo certo, e não deu certo então fui la verificar os dados no Banco do servidor original que é quando que eu descubro que o banco de dados inteiro estava limpo e com todas as tabelas com sobrecarga.

Não faço a minima ideia do que ocorreu, e tinha muita informação o qual o meu cliente ainda não sabe que não esta la mais, eu tenho um backup mas não é o mais recente então vai ser bem complicado ter que explicar isso.

bem de qualquer forma o problema era algo muito idiota e simples, mas é algo tão irrelevante que não me passo pela cabeça que poderia ser já que havia um sistema funcionando ali já... é complicado mas enfim foi resolvido o misterio.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...