Je suis en mysql_fetch_array()
train de passer des méthodes PHP MySQL «old school» d'utilisation , etc. et j'essaie d'être plus Drupally en utilisant l'API Database dans mes modules.
Je veux simplement retourner et imprimer une valeur. Par exemple:
$query = db_query("SELECT zip FROM {zipcodes} WHERE city = :city LIMIT 1", array(":city" => $city));
Je sais que la valeur est là, je peux y accéder et l'imprimer en utilisant des méthodes traditionnelles en dehors de l'API de base de données.
print $query->zip
ne fonctionne pas.
La documentation de l'API est aussi claire que de la boue.
Quelqu'un peut-il me dire comment accéder correctement à ces valeurs?
Y a-t-il un bon tutoriel que n'importe qui pourrait également recommander?
Voici comment utiliser l'API de base de données dans Drupal 7 sans écrire de requête MySQL:
la source
Vous devez boucler votre requête $, vous ne pouvez pas supposer que vous n'avez qu'un seul résultat avec la requête donnée ci-dessus.
Si vous savez que vous n'avez qu'un seul résultat, vous pouvez appeler fetchObject sur votre requête ->
print $ query-> zip devrait alors vous donner ce que vous voulez.
la source
je ferais
si vous voulez exactement une ligne de l'ensemble de résultats. Sinon, boucler avec foreach est la meilleure option, comme suggéré précédemment.
la source
Je sais que c'est vieux, mais vous pouvez et devez faire:
la source
Eh bien, vous devez trouver des moyens de le faire correctement dans Drupa 7:
db_select - dans Drupal, il existe une fonction qui retourne un objet que vous construisez avec lui la requête SQL - https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_select/7 . Vous avez une méthode sur l'objet appelée plage. tu peux l'utiliser.
Requête de champ d'entité qui est une classe qui construit une requête SQL sur des entites: https://www.drupal.org/node/1343708 . C'est aussi avoir la méthode range.
la source
Drupal 7
Utilisez cette requête pour un résultat unique:
Au lieu d'utiliser cela
parce que cela génère un avertissement.
la source
Drupal 6
$query
sera votre résultat. Vous devez en extraire des valeurs. Dans votre cas, s'il ne récupère qu'une ligne et une colonne, c'est-à-dire zip, alors pour obtenir directement$query->zip
ne fonctionnera pas car $ query est un jeu de résultats pas un objet chargé ou un tableau. Donc ça devrait faireRemarque:
db_fetch_array
est une autre API pour récupérer des valeurs au format tableaula source