[DÚVIDA SIMPLES PHP] O que usar quando consulta de banco retorna só 1 linha?

2 respostas
T

Olá, se minha consulta em banco retornar mais de uma linha (em PHP), eu geralmente uso:

$sql = "select * from contato";
$consult = pg_query($sql);
$result = pg_fetch_array($consult);

Nisso crio um foreach e pronto.

Mas e se minha consulta retornar uma linha só (adicionando um ‘where id = x’ na $sql)? Fazendo do mesmo jeito acima dá certo, mas é o mais aconselhado a se fazer?

2 Respostas

drsmachado

Sim.
Tratando-se de performance, é o menos custoso, também.
Comparando com java, é o mesmo que fazer o

while(rs.next()){
//faz algo
}
T

Acho que não é o que eu preciso rs

vou explicar melhor.

DAO.php

class DAO{
public function Connection(){
//faz conexão com o banco
}
public function getAll(){
$sql = "select * from Usuario"; // a tabela Usuario possui 3 rows.
$result = pg_query($sql);
$linha = pg_fetch_object($result);

return $linha;
}
}

Index.php

//devidos imports
$UsuarioDAO = new UsuarioDAO();
$linha = $UsuarioDAO->getAll(){
//como eu percorro esse array de objetos? tentei de várias formas
while($linha){
echo $linha->id; // desse modo só consigo dar echo na primeira linha da consulta, nao aparece as ultimas 2
}

while(linha = $UsuarioDAO->getAll(){
echo $linha->id; // desse jeito dá um erro de tempo estourado ... 30 segundos, e meu firefox precisa ser reiniciado
}
}

É isso, não estou conseguindo percorrer o array de objetos passado como parâmetro.

Criado 24 de junho de 2011
Ultima resposta 27 de jun. de 2011
Respostas 2
Participantes 2