Saya beralih dari metode lama menggunakan PHP 'MySQL' mysql_fetch_array()
, dll. Dan saya mencoba untuk menjadi lebih Drupally dengan menggunakan API Database di modul saya.
Saya hanya ingin mengembalikan dan mencetak nilai. Sebagai contoh:
$query = db_query("SELECT zip FROM {zipcodes} WHERE city = :city LIMIT 1", array(":city" => $city));
Saya tahu nilainya di sana, saya dapat mengakses dan mencetaknya dengan menggunakan metode tradisional di luar API basis data.
print $query->zip
tidak bekerja.
Dokumentasi API sejelas lumpur.
Dapatkah seseorang memberi tahu saya cara yang benar untuk mengakses nilai-nilai ini?
Apakah ada tutorial bagus yang bisa direkomendasikan oleh siapa pun?
Berikut cara menggunakan API Database di Drupal 7 tanpa menulis kueri MySQL:
sumber
Anda harus mengulang $ query Anda, Anda tidak dapat menganggap Anda hanya memiliki satu hasil dengan permintaan yang diberikan di atas.
Jika Anda tahu Anda hanya memiliki satu hasil, Anda dapat memanggil fetchObject pada permintaan Anda ->
print $ query-> zip kemudian akan memberikan apa yang Anda inginkan.
sumber
Saya akan lakukan
jika Anda ingin tepat satu baris dari hasil yang ditetapkan. Kalau tidak, mengulang dengan foreach adalah pilihan terbaik, seperti yang disarankan sebelumnya.
sumber
Saya tahu ini sudah tua, tetapi Anda dapat dan harus melakukannya:
sumber
Anda harus melakukan cara-cara ini dengan benar di Drupa 7:
db_select - di Drupal ada fungsi yang mengembalikan objek yang Anda buat bersamanya dengan query SQL - https://api.drupal.org/api/drupal/includes%21database%21database.inc/function/db_select/7 . Anda memiliki metode pada objek yang disebut rentang. kamu bisa menggunakannya.
Kueri bidang entitas yang merupakan kelas yang menyusun kueri SQL berdasarkan entites: https://www.drupal.org/node/1343708 . Ini juga memiliki metode jangkauan.
sumber
Drupal 7
Gunakan Pertanyaan Ini Untuk Hasil Tunggal:
Alih-alih menggunakan ini
karena itu menghasilkan peringatan.
sumber
Drupal 6
$query
akan menjadi hasil Anda, Anda perlu mengambil nilai dari itu, Dalam kasus Anda Jika hanya mengambil 1 baris dan 1 kolom yaitu zip kemudian untuk mendapatkan langsung$query->zip
tidak akan berfungsi karena $ kueri adalah hasil yang disetel bukan objek atau array yang dimuat. Jadi ini harus dilakukanCatatan:
db_fetch_array
adalah API lain untuk mengambil nilai dalam format arraysumber