Wie überprüfe ich, ob eine Datenbankabfrage Ergebnisse hat?

11

Wie überprüfe ich, ob der folgende Code Ergebnisse enthält?

Ich habe die leere Funktion ausprobiert, aber sie gibt immer FALSE zurück


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

Antworten:

1

Wenn Sie drucken, sehen var_dump($result);Sie, dass $resultdie Abfrage und andere Variablen enthalten sind, sodass sie niemals leer sind.
Sie können $resulteine foreachSchleife einfügen, um die Ergebnisse anzuzeigen.

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

Innerhalb der foreachSchleife können Sie die Ergebnisse mit diesem Code drucken.

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

Wenn es nur einen Datensatz als Ergebnis gibt, verwenden Sie mysql_fetch_array(), um den Datensatz zu behandeln.

JürgenR
quelle
Du hast einen Tippfehler. Dies sollte seinforeach ($result as $record) { var_dump($record); }
vanz
Bei Drupal ist es ein schlechter Rat, die Verwendung einer MySQL-Funktion vorzuschlagen. Die Site verwendet möglicherweise PosgreSQL, SQLite oder ein anderes Datenbankmodul, mit dem Drupal kompatibel ist. Für Drupal-Datenbankfunktionen ist kein Modul erforderlich, um das von der Seite verwendete Datenbankmodul zu kennen.
Kiamlaluno
0

Versuche dies

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