Bagaimana cara memeriksa apakah permintaan basis data memiliki hasil?

11

Bagaimana cara saya memeriksa apakah kode berikut memiliki hasil?

Saya mencoba fungsi kosong tetapi selalu mengembalikan SALAH


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

Jawaban:

14

Jika saya memperbaiki hasil dari mengeksekusi () panggilan harus menjadi DatabaseStatementInterface yang memiliki fungsi rowCount .

Jensen
sumber
1
Memang, berikut ini memberikan jumlah hasil:var_dump($result->rowCount());
pfrenssen
1

Jika Anda mencetak, var_dump($result);Anda akan melihat yang $resultberisi kueri dan variabel lain sehingga tidak pernah kosong.
Anda dapat menempatkan $resultdalam foreachlingkaran untuk melihat hasilnya.

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

Di dalam foreachloop, Anda dapat mencetak hasilnya dengan kode ini.

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

Jika hanya ada satu catatan sebagai hasil gunakan mysql_fetch_array()untuk menangani catatan.

JurgenR
sumber
Anda salah ketik. Ini seharusnyaforeach ($result as $record) { var_dump($record); }
vanz
Dengan Drupal, disarankan untuk menggunakan fungsi MySQL. Situs ini dapat menggunakan PosgreSQL, SQLite, atau mesin database lain yang kompatibel dengan Drupal. Fungsi basis data Drupal tidak memerlukan modul untuk mengetahui mesin basis data yang digunakan dari samping.
kiamlaluno
0

Coba ini

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