mysql_fetch_array()
Przechodzę ze „starej szkoły” metod PHP MySQL itp. I staram się być bardziej Drupally, używając API bazy danych w moich modułach.
Chcę po prostu zwrócić i wydrukować wartość. Na przykład:
$query = db_query("SELECT zip FROM {zipcodes} WHERE city = :city LIMIT 1", array(":city" => $city));
Wiem, że wartość tam jest, mogę uzyskać do niej dostęp i wydrukować ją przy użyciu tradycyjnych metod poza interfejsem API bazy danych.
print $query->zip
nie działa.
Dokumentacja API jest tak przejrzysta jak błoto.
Czy ktoś może mi powiedzieć, w jaki sposób uzyskać dostęp do tych wartości?
Czy jest też dobry samouczek, który ktoś mógłby polecić?
Oto jak korzystać z interfejsu API bazy danych w Drupal 7 bez pisania zapytania MySQL:
źródło
Musisz zapętlić swoje zapytanie $, nie możesz przypuszczać, że masz tylko jeden wynik dla powyższego zapytania.
Jeśli wiesz, że masz tylko jeden wynik, możesz wywołać fetchObject w swoim zapytaniu ->
print $ query-> zip powinien dać ci to, czego chcesz.
źródło
chciałbym zrobić
jeśli chcesz dokładnie jeden wiersz z zestawu wyników. W przeciwnym razie, jak sugerowano wcześniej, najlepszym rozwiązaniem jest zapętlenie z foreach.
źródło
Wiem, że to stare, ale możesz i powinieneś zrobić:
źródło
Cóż, musisz dokładnie to zrobić w Drupa 7:
db_select - w Drupal jest funkcja, która zwraca obiekt, który razem z nim budujesz, zapytanie SQL - https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_select/7 . Masz metodę na obiekcie o nazwie range. możesz tego użyć.
Kwerenda pola encji, która jest klasą, która konstruuje zapytanie SQL na entites: https://www.drupal.org/node/1343708 . Jest to również metoda zasięgu.
źródło
Drupal 7
Użyj tego zapytania do pojedynczego wyniku:
Zamiast tego używać
ponieważ generuje ostrzeżenie.
źródło
Drupal 6
$query
będzie twój wynik Musisz pobrać z niego wartości, W twoim przypadku Jeśli pobierze tylko 1 wiersz i 1 kolumnę, tj. zip, to uzyskaj bezpośrednio$query->zip
nie będzie działać, ponieważ $ zapytanie jest zestawem wyników, a nie załadowanym obiektem lub tablicą. To powinno wystarczyćUwaga:
db_fetch_array
jest innym API do pobierania wartości w formacie tablicowymźródło