Как проверить, есть ли у запроса к базе данных результаты?


11

Как проверить, имеет ли следующий код результаты?

Я пробовал пустую функцию, но она всегда возвращает FALSE


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

Ответы:



1

Если вы напечатаете, var_dump($result);вы увидите, что $resultсодержит запрос и другие переменные, поэтому он никогда не будет пустым.
Вы можете поместить $resultв foreachпетлю , чтобы увидеть результаты.

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

Внутри foreachцикла вы можете распечатать результаты с помощью этого кода.

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

Если в качестве результата есть только одна запись, используйте ее mysql_fetch_array()для обработки.


У вас есть опечатка. Это должно бытьforeach ($result as $record) { var_dump($record); }
vanz

С Drupal плохой совет предлагать использовать функцию MySQL. Сайт может использовать PosgreSQL, SQLite или другой движок базы данных, с которым совместим Drupal. Функции базы данных Drupal не требуют, чтобы модуль знал механизм базы данных, используемый со стороны.
kiamlaluno

0

Попробуй это

while($record = $result->fetchAssoc()) {
print_r($record);
}
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.