Rumah >rangka kerja php >YII >DbCriteria dalam rangka kerja Yii: Tanya pangkalan data dengan cekap
DbCriteria dalam rangka kerja Yii: Tanya pangkalan data dengan cekap
Rangka kerja Yii ialah rangka kerja PHP yang pantas, cekap dan selamat Ia menyediakan kelas operasi pangkalan data DbCriteria yang boleh membantu kami membuat pertanyaan dengan lebih cekap dan menambah baik prestasi aplikasi. Artikel ini akan memperkenalkan cara menggunakan DbCriteria untuk pertanyaan pangkalan data.
Penciptaan DbCriteria
Kami boleh menggunakan kod berikut untuk mencipta contoh DbCriteria:
$criteria = new CDbCriteria;
DbCriteria menyediakan kaedah pertanyaan penstriman, yang membolehkan kami lulus pertanyaan Set rantai syarat dengan memanggil kaedah, contohnya:
$criteria->select('title, content') ->addCondition('status=:status') ->params(array(':status'=>1)) ->order('create_time DESC') ->limit(10);
Dalam kod di atas, kami menggunakan kaedah pilih untuk menentukan medan untuk ditanya, gunakan kaedah addCondition untuk menetapkan syarat pertanyaan, gunakan kaedah params untuk mengikat pertanyaan parameter, dan gunakan Kaedah pesanan mengisih hasil pertanyaan, dan kaedah had menetapkan bilangan hasil pertanyaan.
DbCriteria menyediakan pelbagai kaedah pertanyaan, termasuk kaedah pilih, tambahSyarat, param, pesanan, had dan kaedah lain. Di bawah ini kami akan memperkenalkan kaedah ini satu demi satu.
kaedah pilih
kaedah pilih digunakan untuk menentukan medan yang hendak ditanya Ia boleh menerima satu atau lebih nama medan sebagai parameter, contohnya:
$criteria->select('id, name, email');
juga boleh. tatasusunan. Tentukan medan yang ingin ditanya dalam bentuk:
$criteria->select(array('id', 'name', 'email'));
kaedah addCondition
kaedah addCondition digunakan untuk menambah syarat pertanyaan Ia boleh menerima parameter berbeza berikut:
Contohnya:
$criteria->addCondition('age>:age'); $criteria->addCondition('gender=:gender'); $criteria->params(array(':age'=>18, ':gender'=>'Female'));
Dalam kod di atas, kami menggunakan kaedah addCondition untuk menambah dua syarat pertanyaan dan menggunakan params kaedah untuk mengikat parameter pertanyaan.
kaedah params
kaedah params digunakan untuk mengikat parameter pertanyaan Ia menerima tatasusunan sebagai parameter nilai yang perlu diikat. Contohnya:
$criteria->params(array(':age'=>18, ':gender'=>'Female'));
Dalam kod di atas, kami menggunakan kaedah params untuk mengikat dua parameter pertanyaan: :umur dan :jantina.
kaedah pesanan
kaedah pesanan digunakan untuk mengisih hasil pertanyaan Ia menerima rentetan sebagai parameter, yang menunjukkan syarat untuk mengisih, contohnya:
$criteria->order('create_time DESC');
Dalam perkara di atas. kod, Kami menggunakan kaedah pesanan untuk mengisih hasil pertanyaan dalam susunan menurun mengikut medan create_time.
kaedah had
kaedah had digunakan untuk mengehadkan bilangan hasil pertanyaan Ia menerima integer sebagai parameter, menunjukkan bilangan hasil pertanyaan, contohnya:
$criteria->limit(10);Dalam kod di atas, Kami menggunakan kaedah had untuk mengehadkan bilangan hasil pertanyaan kepada 10 rekod. Penggunaan DbCriteriaSelepas kami mencipta contoh DbCriteria, kami boleh menggunakannya pada pertanyaan dalam dua cara berikut:
$model = Post::model()->find($criteria);
$models = Post::model()->findAll($criteria);
$models = Yii::app()->db->createCommand() ->select('id, name, email') ->from('user') ->where('status=:status', array(':status'=>1)) ->order('create_time DESC') ->limit(10) ->queryAll();Dalam kod di atas, kami memperoleh objek sambungan pangkalan data melalui Yii::app()->db, gunakan kaedah createCommand untuk mencipta objek arahan, dan kemudian gunakan pilih, daripada, di mana, perintah, had dan kaedah lain untuk menetapkan syarat pertanyaan, dan akhirnya memanggil kaedah queryAll untuk membuat pertanyaan. RingkasanDbCriteria ialah alat pertanyaan pangkalan data yang sangat berkuasa dalam rangka kerja Yii Ia menyediakan satu siri kaedah yang mudah digunakan untuk menetapkan syarat pertanyaan, mengikat parameter pertanyaan, menyusun hasil pertanyaan. dan hadkan Bilangan pertanyaan, dsb., membantu kami menanyakan pangkalan data dengan lebih cekap dan meningkatkan prestasi aplikasi. Kita harus menggunakan sepenuhnya DbCriteria untuk mengoptimumkan kod kita apabila membuat pertanyaan pangkalan data.
Atas ialah kandungan terperinci DbCriteria dalam rangka kerja Yii: Tanya pangkalan data dengan cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!