mysqli - Conferir se a query retornou algum registro

1,424 views
Skip to first unread message

rics

unread,
Jan 8, 2007, 11:44:05 AM1/8/07
to php-brasil
Pessoal, no site do PHP tem um exemplo assim pra verificar se a query
retornou algum registro:

if ($result = $mysqli->query($sql)) {
...
}

Só que não está funcionando comigo. Estou desconfiado de que o FALSE
só ocorre quando a query não consegue ser executada. Como ela foi
executada, retornou um objeto (ainda que vazio) fazendo a sentença ser
analizada como verdadeira.

Estou procurando por lá pra tentar descobrir como fazer pra
identificar o retorno ou não de registros. Se alguém pouder me dar
uma mão...

Assim que eu achar publico aqui a solução desta dúvida.

Valeu gente.
Rics

Eliane

unread,
Jan 8, 2007, 1:13:05 PM1/8/07
to php-b...@googlegroups.com
faz uma verificação extra:

count($result)>0 se retornar array
ou is_object($result) se retorna objeto
(não conheço a classe que está usando...)


2007/1/8, rics <ricard...@gmail.com>:

rics

unread,
Jan 8, 2007, 2:52:12 PM1/8/07
to php-brasil
Oi Eliane,

Estou usando a extensão mysqli do próprio PHP mesmo.

Eu acabei achando um método pra fazer o que eu queria. A solução
ficou assim:


if ($result = $mysqli->query($sql) && $result->num_rows != 0) {
...
}


Acabou que acontecia o que eu estava desconfiado mesmo. O método query
retorna um objeto. Se a query não trouxe nenhum registro, vem um
objeto do mesmo jeito... aí tem que usar o método num_rows do objeto
retornado pela query pra descobrir quantas linhas retornou...

Bem tranquilo... eu que não estava achando ele na documentação.

Grande abraço,
rics


On Jan 8, 3:13 pm, Eliane <pequ...@gmail.com> wrote:
> faz uma verificação extra:
>
> count($result)>0 se retornar array
> ou is_object($result) se retorna objeto
> (não conheço a classe que está usando...)
>

> 2007/1/8, rics <ricardo.ce...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages