Como verificar se uma consulta ao banco de dados tem resultados?

11

Como verifico se o código a seguir tem resultados?

Eu tentei a função vazia , mas ela sempre retorna FALSE


$query = db_select('my_table', 't');
$query->condition('code', 10)
      ->fields('t', array('cid'));
$result = $query->execute();
hpn
fonte

Respostas:

14

Se eu estiver correto, o resultado da chamada execute () deve ser um DatabaseStatementInterface que possui uma função rowCount .

Jensen
fonte
1
De fato, o seguinte fornece o número de resultados:var_dump($result->rowCount());
pfrenssen 23/10/11
1

Se você imprimir var_dump($result);, verá que $resultcontém a consulta e outras variáveis, para que nunca fique vazio.
Você pode colocar $resultum foreachloop para ver os resultados.

foreach ($result as $record) {
  var_dump($record);
}

Dentro do foreachloop, você pode imprimir os resultados com este código.

foreach ($result as $record) {
  print $record->nid;
  print $record->title;
}

Se houver apenas um registro como resultado, use-o mysql_fetch_array()para manipulá-lo.

JurgenR
fonte
Você tem um erro de digitação. Isso deve serforeach ($result as $record) { var_dump($record); }
vanz
Com o Drupal, é um mau conselho sugerir o uso de uma função MySQL. O site pode estar usando PosgreSQL, SQLite ou outro mecanismo de banco de dados com o qual o Drupal é compatível. As funções do banco de dados Drupal não requerem um módulo para conhecer o mecanismo de banco de dados usado de lado.
kiamlaluno
0

Tente isto

while($record = $result->fetchAssoc()) {
print_r($record);
}
Ahmad
fonte