Comment vérifier si une requête de base de données a des résultats?


11

Comment vérifier si le code suivant a des résultats?

J'ai essayé la fonction vide mais elle renvoie toujours FAUX


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

Réponses:



1

Si vous imprimez, var_dump($result);vous verrez qu'il $resultcontient la requête et d'autres variables afin qu'il ne soit jamais vide.
Vous pouvez mettre $resulten foreachboucle pour voir les résultats.

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

À l'intérieur de la foreachboucle, vous pouvez imprimer les résultats avec ce code.

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

S'il n'y a qu'un seul enregistrement comme résultat, utilisez-le mysql_fetch_array()pour gérer l'enregistrement.


Vous avez une faute de frappe. Cela devrait êtreforeach ($result as $record) { var_dump($record); }
vanz

Avec Drupal, c'est un mauvais conseil de suggérer d'utiliser une fonction MySQL. Le site pourrait utiliser PosgreSQL, SQLite ou un autre moteur de base de données avec lequel Drupal est compatible. Les fonctions de base de données Drupal ne nécessitent pas de module pour connaître le moteur de base de données utilisé de côté.
kiamlaluno

0

Essaye ça

while($record = $result->fetchAssoc()) {
print_r($record);
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.