Rumah  >  Artikel  >  rangka kerja php  >  Pembina pertanyaan dalam rangka kerja Yii: Memudahkan operasi pangkalan data

Pembina pertanyaan dalam rangka kerja Yii: Memudahkan operasi pangkalan data

王林
王林asal
2023-06-21 14:11:341267semak imbas

Dengan pembangunan dan populariti aplikasi web, pemprosesan data menjadi semakin penting. Pangkalan data adalah teras pemprosesan data Artikel ini akan memperkenalkan pembina pertanyaan dalam rangka kerja Yii Ia adalah alat berkuasa yang boleh memudahkan operasi pangkalan data dan meningkatkan kecekapan pembangunan.

Rangka kerja Yii ialah rangka kerja PHP berasaskan MVC berprestasi tinggi. Ia menyediakan banyak ciri dan komponen, salah satu komponen yang paling penting ialah pembina pertanyaan (QueryBuilder). Pembina pertanyaan membolehkan kami berinteraksi dengan pangkalan data dengan cara yang lebih elegan, menggunakan pendekatan berorientasikan objek.

Berbeza daripada pernyataan SQL tradisional, pembina pertanyaan menggunakan pendekatan berorientasikan objek untuk membina pernyataan SQL. Kami menggunakan kod PHP untuk mewakili pertanyaan yang ingin kami buat, dan pembina pertanyaan bertanggungjawab untuk menukar kod ini kepada pernyataan SQL yang sepadan.

Berikut ialah beberapa kaedah biasa pembina pertanyaan dalam rangka kerja Yii.

  1. select()

kaedah select() digunakan untuk menetapkan lajur yang hendak dipilih. Jika kita perlu memilih semua lajur, kita boleh menggunakan * sebagai parameter. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users');

Jika kita hanya perlu memilih beberapa lajur tertentu, kita boleh menghantar nama lajur sebagai parameter kepada kaedah select() dan berbilang nama lajur boleh dihantar menggunakan tatasusunan. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select(['id', 'username'])->from('users');
  1. from()

from() kaedah digunakan untuk menetapkan jadual data pertanyaan. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users');
  1. kaedah where()

where() digunakan untuk menetapkan syarat pertanyaan. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users')->where(['status' => 1]);

di mana status ialah nama lajur dan 1 ialah nilai lajur.

Selain menggunakan pasangan nilai kunci, kami juga boleh menggunakan tatasusunan untuk menghantar perhubungan antara syarat berbilang syarat pertanyaan Lalai ialah perhubungan "DAN". Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users')->where(['status' => 1, 'age' => 18]);

Ini akan menghasilkan pernyataan SQL berikut:

SELECT * FROM `users` WHERE `status`=:status AND `age`=:age

Jika kita perlu menggunakan perhubungan "OR", kita boleh menulisnya seperti ini:

$query = Yii::$app->db->createCommand()->select('*')->from('users')->where(['or', ['status' => 1], ['age' => 18]]);

Ini akan menjana pernyataan SQL berikut :

SELECT * FROM `users` WHERE (`status`=:status OR `age`=:age)
  1. had() dan offset()

kaedah had() digunakan untuk menetapkan bilangan baris maksimum dikembalikan oleh keputusan pertanyaan, dan kaedah offset() digunakan untuk menetapkan pertanyaan Offset hasil. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users')->where(['status' => 1])->limit(10)->offset(5);

Ini akan menghasilkan pernyataan SQL berikut:

SELECT * FROM `users` WHERE `status`=:status LIMIT 10 OFFSET 5
  1. orderBy()

orderBy() kaedah digunakan untuk menyusun keputusan. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('*')->from('users')->where(['status' => 1])->orderBy('age');

Ini akan menghasilkan pernyataan SQL berikut:

SELECT * FROM `users` WHERE `status`=:status ORDER BY `age`
  1. groupBy() dan having()

The groupBy( ) kaedah digunakan untuk Keputusan dikumpulkan, dan kaedah having() digunakan untuk menetapkan keadaan kumpulan. Contohnya adalah seperti berikut:

$query = Yii::$app->db->createCommand()->select('count(*) as cnt, status')->from('users')->groupBy('status')->having(['>', 'cnt', 10]);

Ini akan menghasilkan pernyataan SQL berikut:

SELECT count(*) as cnt, status FROM `users` GROUP BY `status` HAVING cnt > 10

Pembina pertanyaan membolehkan kami berinteraksi dengan pangkalan data dengan cara yang lebih elegan, menggunakan pendekatan berorientasikan objek . Apabila menggunakan rangka kerja Yii untuk membangunkan aplikasi web, kami boleh menggunakan sepenuhnya pembina pertanyaan untuk memudahkan operasi pangkalan data dan meningkatkan kecekapan pembangunan.

Atas ialah kandungan terperinci Pembina pertanyaan dalam rangka kerja Yii: Memudahkan operasi pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn