Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap
Jun 21, 2023 am 11:22 AMRangka kerja Yii ialah rangka kerja aplikasi web PHP sumber terbuka yang menyediakan pelbagai alatan dan komponen untuk memudahkan proses pembangunan aplikasi web, yang mana pertanyaan data merupakan salah satu komponen penting. Dalam rangka kerja Yii, kita boleh menggunakan sintaks seperti SQL untuk mengakses pangkalan data untuk membuat pertanyaan dan memanipulasi data dengan cekap.
Pembina pertanyaan rangka kerja Yii terutamanya termasuk jenis berikut: Pertanyaan Rekod Aktif, pertanyaan Pembina Pertanyaan, pertanyaan arahan dan pertanyaan SQL asal. Artikel ini akan memperkenalkan pembina pertanyaan ini dan cara menggunakannya satu demi satu untuk membantu pemula menguasai cara menggunakan pertanyaan data dalam rangka kerja Yii dengan lebih baik.
- Pertanyaan Rekod Aktif
Mod Rekod Aktif ialah salah satu mod akses data yang paling biasa digunakan dalam rangka kerja Yii Ia menyediakan antara muka berorientasikan objek yang membolehkan kami lakukan perkara seperti Memanipulasi data dalam pangkalan data seperti yang anda lakukan dengan kejadian berorientasikan objek. Dalam rangka kerja Yii, setiap kelas Active Record sepadan dengan jadual pangkalan data, dan kita boleh mengakses data dalam jadual dengan memanggil kaedah statik kelas.
Berikut ialah contoh pertanyaan Rekod Aktif:
//創(chuàng)建一個(gè)Active Record對象 $post = Post::findOne(1); //輸出該對象的屬性 echo $post->title;
Dalam contoh ini, kami mula-mula menggunakan kaedah findOne()
untuk mencipta contoh kelas Post
Kaedah ini akan membuat pertanyaan pangkalan data Post
Rekod dengan kunci utama 1 dalam jadual dan kembalikan objek Rekod Aktif, kemudian kami menggunakan atribut title
objek untuk mengakses atribut tajuk rekod.
Dalam pembangunan sebenar, kita biasanya perlu menapis, mengisih, halaman dan operasi lain pada data. Rangka kerja Yii menyediakan kaedah yang kaya untuk melaksanakan fungsi ini. Sebagai contoh, kita boleh menggunakan kaedah where()
untuk menambah keadaan penapis, menggunakan kaedah orderBy()
untuk menentukan kaedah pengisihan, menggunakan kaedah limit()
untuk mengehadkan bilangan rekod yang dikembalikan dan menggunakan kaedah offset()
untuk nyatakan kedudukan permulaan rekod yang dikembalikan. Berikut ialah contoh:
//查詢標(biāo)題包含“Yii”并且作者為“admin”的文章,并按照發(fā)布時(shí)間倒序排序,返回前10條記錄 $posts = Post::find()->where(['like', 'title', 'Yii']) ->andWhere(['author' => 'admin']) ->orderBy(['created_at' => SORT_DESC]) ->limit(10) ->offset(0) ->all();
Dalam contoh ini, kami menggunakan kaedah find()
untuk mencipta objek pertanyaan Rekod Aktif, dan kemudian menggunakan kaedah where()
dan andWhere()
untuk menambah dua syarat penapis, iaitu Tajuk mengandungi "Yii" dan pengarangnya ialah "admin"; kaedah orderBy()
digunakan untuk menentukan titik permulaan rekod yang dikembalikan Kedudukan permulaan ialah 0 rekod. Akhir sekali, kami menggunakan kaedah limit()
untuk melaksanakan pertanyaan dan mengembalikan semua rekod yang memenuhi keperluan. offset()
all()
- Query Builder ialah satu lagi kaedah capaian data yang biasa digunakan dalam rangka kerja Yii Ia menyediakan kaedah panggilan berantai untuk membina pernyataan pertanyaan SQL , lebih sesuai untuk keperluan pertanyaan yang kompleks. Dalam rangka kerja Yii, kita boleh menggunakan kaedah
Yii::$app->db->createCommand()
Berikut ialah contoh pertanyaan Pembina Pertanyaan:
//創(chuàng)建一個(gè)查詢構(gòu)建器對象,并構(gòu)建查詢語句 $query = Yii::$app->db->createCommand() ->select('id, title, content') ->from('post') ->where(['like', 'title', 'Yii']) ->andWhere(['author' => 'admin']) ->orderBy(['created_at' => SORT_DESC]) ->limit(10) ->offset(0); //執(zhí)行查詢,并返回結(jié)果集 $posts = $query->queryAll();
Dalam contoh ini, kita mula-mula mencipta objek Pembina Pertanyaan menggunakan kaedah
dan kemudian gunakan objek , Yii::$app->db->createCommand()
, select()
, from()
, where()
, andWhere()
dan orderBy()
dan kaedah lain untuk membina pernyataan pertanyaan. Akhir sekali, kami menggunakan kaedah limit()
untuk melaksanakan pertanyaan dan mengembalikan semua rekod yang memenuhi keperluan. offset()
queryAll()
Perbezaan terbesar antara Pembina Pertanyaan dan Rekod Aktif ialah Pembina Pertanyaan tidak perlu menentukan kelas model, jadi ia sesuai untuk beberapa senario pertanyaan mudah, seperti pertanyaan statistik.
- Pertanyaan arahan ialah kaedah capaian data paling asli dalam rangka kerja Yii Kita boleh menggunakan kaedah ini untuk melaksanakan beberapa operasi pangkalan data yang tidak memerlukan pengembalian a set hasil Seperti kemas kini, padam, masukkan, dsb. Dalam rangka kerja Yii, kita boleh menggunakan kaedah
objek untuk melaksanakan pernyataan SQL. Yii::$app->db->createCommand()
execute()
Berikut ialah contoh pertanyaan arahan:
//創(chuàng)建一個(gè)命令對象,并執(zhí)行SQL語句 Yii::$app->db->createCommand() ->update('post', ['status' => 1], 'author = "admin"') ->execute();
Dalam contoh ini, kita mula-mula mencipta objek Perintah menggunakan kaedah
dan kemudian menggunakan kaedah bagi objek untuk membina pernyataan Kemas Kini, yang mengemas kini atribut status semua rekod dalam jadual Yii::$app->db->createCommand()
yang update()
ialah "admin" kepada 1, akhirnya kami menggunakan kaedah post
untuk melaksanakan pernyataan kemas kini. author
execute()
- Dalam beberapa kes khas, kami mungkin perlu melaksanakan beberapa pernyataan pertanyaan kompleks yang tidak boleh diproses melalui Rekod Aktif, Pembina Pertanyaan atau pertanyaan arahan Pertanyaan SQL boleh digunakan pada masa ini. Dalam rangka kerja Yii, kita boleh menggunakan kaedah
objek untuk menentukan pernyataan SQL asal, dan menggunakan kaedah Yii::$app->db->createCommand()
untuk melaksanakan pertanyaan. setSql()
queryAll()
Berikut ialah contoh pertanyaan SQL mentah:
//創(chuàng)建一個(gè)命令對象,并執(zhí)行原始SQL查詢 $connection = Yii::$app->db; $command = $connection->createCommand(" SELECT p.id, p.title, u.username FROM post p LEFT JOIN user u ON p.author_id = u.id WHERE p.status = 1 AND u.role = 'admin' ORDER BY p.created_at DESC LIMIT 10 OFFSET 0 "); $posts = $command->queryAll();
這個(gè)例子中,我們首先創(chuàng)建了一個(gè)Command對象,并使用setSql()
方法指定一條原始的SQL查詢語句。該語句將post
表和user
表進(jìn)行左連接,查詢出所有狀態(tài)為1且用戶角色為“admin”的文章,并按照發(fā)布時(shí)間倒序排序,返回前10條記錄。最后,我們使用queryAll()
方法執(zhí)行該查詢,并返回所有符合要求的記錄。
總結(jié):
在Yii框架中,我們可以使用多種方式來訪問數(shù)據(jù)庫中的數(shù)據(jù),包括Active Record查詢、Query Builder查詢、命令查詢和原始SQL查詢。不同的查詢構(gòu)建器適用于不同的查詢場景,我們需要根據(jù)實(shí)際需求來選擇最合適的查詢方式。通過本文的介紹,相信讀者已經(jīng)對Yii框架中的數(shù)據(jù)查詢有了更深入的了解,希望對大家在實(shí)際開發(fā)中使用Yii框架有所幫助。
Atas ialah kandungan terperinci Pertanyaan data dalam rangka kerja Yii: capai data dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Fungsi dan ciri bahasa Go bahasa Go, juga dikenali sebagai Golang, ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Ia pada asalnya direka untuk meningkatkan kecekapan dan kebolehselenggaraan pengaturcaraan. Sejak kelahirannya, bahasa Go telah menunjukkan daya tarikan uniknya dalam bidang pengaturcaraan dan telah mendapat perhatian dan pengiktirafan yang meluas. Artikel ini akan menyelidiki fungsi dan ciri bahasa Go dan menunjukkan kuasanya melalui contoh kod tertentu. Sokongan serentak asli Bahasa Go sememangnya menyokong pengaturcaraan serentak, yang dilaksanakan melalui mekanisme goroutine dan saluran.

Ruang pemacu C kehabisan! 5 kaedah pembersihan yang cekap didedahkan! Dalam proses menggunakan komputer, ramai pengguna akan menghadapi situasi di mana ruang pemacu C kehabisan terutamanya selepas menyimpan atau memasang sejumlah besar fail, ruang pemacu C yang tersedia akan berkurangan dengan cepat, yang akan menjejaskan prestasi dan. kelajuan komputer berjalan. Pada masa ini, sangat perlu untuk membersihkan pemacu C. Jadi, bagaimana untuk membersihkan pemacu C dengan cekap? Seterusnya, artikel ini akan mendedahkan 5 kaedah pembersihan yang cekap untuk membantu anda menyelesaikan masalah kekurangan ruang pemacu C dengan mudah. 1. Bersihkan fail sementara ialah fail sementara yang dijana semasa komputer sedang berjalan.

Perbezaan utama antara Laravel dan Yii adalah konsep reka bentuk, ciri -ciri fungsional dan senario penggunaan. 1. Laravel memberi tumpuan kepada kesederhanaan dan keseronokan pembangunan, dan menyediakan fungsi yang kaya seperti alat eloquentorm dan artisan, sesuai untuk pembangunan dan pemula yang pesat. 2.YII menekankan prestasi dan kecekapan, sesuai untuk aplikasi beban tinggi, dan menyediakan sistem Activerecord dan cache yang cekap, tetapi mempunyai lengkung pembelajaran yang curam.

Langkah -langkah untuk membekalkan dan menggunakan aplikasi YII menggunakan Docker termasuk: 1. Buat Dockerfile dan tentukan proses bangunan imej; 2. Gunakan DockerCompose untuk melancarkan aplikasi YII dan pangkalan data MySQL; 3. Mengoptimumkan saiz dan prestasi imej. Ini melibatkan bukan sahaja operasi teknikal tertentu, tetapi juga memahami prinsip kerja dan amalan terbaik Dockerfile untuk memastikan penggunaan yang cekap dan boleh dipercayai.

Python dan C++ ialah dua bahasa pengaturcaraan yang popular, masing-masing mempunyai kelebihan dan kekurangannya sendiri. Bagi orang yang ingin belajar pengaturcaraan, memilih untuk belajar Python atau C++ selalunya merupakan keputusan penting. Artikel ini akan meneroka kos pembelajaran Python dan C++ dan membincangkan bahasa yang lebih sesuai untuk masa dan usaha. Mula-mula, mari kita mulakan dengan Python. Python ialah bahasa pengaturcaraan peringkat tinggi yang ditafsirkan yang terkenal dengan kemudahan pembelajaran, kod yang jelas dan sintaks yang ringkas. Berbanding dengan C++, Python

Analisis Ciri dan Kelebihan Bahasa C Sebagai bahasa pengaturcaraan yang hampir digunakan secara universal, bahasa C mempunyai banyak ciri dan kelebihan yang unik. Artikel ini akan menganalisis ketepatan sintaks, fleksibiliti, kecekapan dan merentas platform, serta menyediakan contoh kod khusus untuk digambarkan. Pertama sekali, sintaks bahasa C agak ringkas dan jelas, menjadikannya mudah dipelajari dan dikuasai. Peraturan tatabahasa bahasa C adalah mudah dan jelas, tanpa terlalu banyak ciri yang rumit, membolehkan pemula untuk bermula dengan cepat dan cepat menguasai pengetahuan asas pengaturcaraan. Berikut ialah contoh program HelloWorld yang mudah

Dengan perkembangan teknologi maklumat yang berterusan, pilihan bahasa pengaturcaraan telah menjadi semakin pelbagai. Di antara banyak bahasa pengaturcaraan, bahasa Go sangat popular dan telah menjadi pilihan pertama banyak pembangun dan perusahaan. Jadi, mengapakah bahasa Go begitu popular? Pertama sekali, bahasa Go ialah bahasa pengaturcaraan sumber terbuka yang dibangunkan oleh Google Reka bentuk asalnya adalah untuk menyelesaikan kekurangan beberapa bahasa tradisional dalam pengaturcaraan serentak. Bahasa Go adalah agak mudah dan jelas dari segi sintaks dan spesifikasi, serta mudah dibaca dan dipelajari, yang membolehkan pemula untuk bermula dengan cepat. Pada masa yang sama, bahasa Go telah terbina dalam

Migratingalaravel projecttoyiiishallingbutachieffable withiefleflant.1) mapoutlaravel component likeroutes, controllers, andmodels.2) Translatelaravel's Sartisancommandeloequenttooyii's Giiandetiverecordeba
