Yii2架構實現資料庫常用操作解析

來源:互聯網
上載者:User
本篇文章主要介紹了Yii2架構實現資料庫常用操作總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

通用:

use yii\db\Query;$query = new Query();

查詢:

Query:

$rows = (new \yii\db\Query())      ->select(['code', 'name', 'population'])      ->from('country')      ->limit(10)      ->all();

Select:

$data = $query->select(['code', 'name'])->from('country')->all();// 調用 yii\db\Query::addSelect() 方法來選取附加欄位    $data = $query->select(['code', 'name'])      ->addSelect(['population'])->all();

From:

$query->from('country'); $query->from(['public.country c']); $query->from('public.country c');

Where:

字串格式,例如:'status=1'

雜湊格式,例如: ['status' => 1, 'type' => 2]

操作符格式,例如:['like', 'name', 'test']

andFilterWhere()orFilterWhere()

Active Record (活動記錄,以下簡稱AR)提供了一個物件導向的介面, 用以訪問資料庫中的資料。一個 AR 類關聯一張資料表, 每個 AR 對象對應表中的一行,對象的屬性(即 AR 的特性Attribute)映射到資料行的對應列。 一條活動記錄(AR對象)對應資料表的一行,AR對象的屬性則映射該行的相應列。

這裡的增刪改都會用到AR對象進行映射操作。

增加

$country->name = 'UK';$country->save();

修改

$country = Customer::findOne($id);$country->email = 'UK';$country->save(); // 等同於 $country->update();

刪除

$country = Country::findOne($id);$country->delete();

其他

User::find()->all();  //返回所有使用者資料;User::findOne($id);  //返回 主鍵 id=1 的一條資料; User::find()->where(['name' => 'ttt'])->one();  //返回 ['name' => 'ttt'] 的一條資料;User::find()->where(['name' => 'ttt'])->all();  //返回 ['name' => 'ttt'] 的所有資料;User::findBySql('SELECT * FROM user')->all(); //用 sql 語句查詢 user 表裡面的所有資料;User::findBySql('SELECT * FROM user')->one(); //此方法是用 sql 語句查詢 user 表裡面的一條資料;User::find()->andWhere(['sex' => '女', 'age' => '18'])->count('id');  //統計合格總條數;User::find()->one();  //返回一條資料;User::find()->all();  //返回所有資料;User::find()->count();  //返回記錄的數量;User::find()->average();  //返回指定列的平均值;User::find()->min();  //返回指定列的最小值 ;User::find()->max();  //返回指定列的最大值 ;User::find()->scalar();  //傳回值的第一行第一列的查詢結果;User::find()->column();  //返回查詢結果中的第一列的值;User::find()->exists();  //返回一個值指示是否包含查詢結果的資料行;

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.