bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

使用YII2框架如何對數據庫進行操作-創新互聯

這篇文章將為大家詳細講解有關使用YII2框架如何對數據庫進行操作,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

目前成都創新互聯已為上千多家的企業提供了網站建設、域名、雅安服務器托管網站托管、企業網站設計、無為網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

一、以createCommand方式:


// YII2中通過createCommand來處理數據庫
 
// 查詢多條記錄
// {{%user}} 表示如果設置了表前綴,YII會自動幫你替換
$data1 = YII::$app->db->createCommand('select * from {{%user}}')->queryAll();
 
 
// 查詢一條記錄
// createCommand的第二個參數可以進行參數綁定
$data2 = YII::$app->db->createCommand('select * from {{%user}} where id=:id', ['id' => 2])->queryOne();
 
 
// 返回一列(第一列)數據
$data3 = YII::$app->db->createCommand('select name from {{%user}}')->queryColumn();
 
 
// 返回一個標量值,常用于統計
$data4 = YII::$app->db->createCommand('select count(*) as cnt from {{%user}}')->queryScalar();
 
// 綁定參數,防止SQL注入問題
// bindValue綁定一個參數
$data5 = YII::$app->db->createCommand('select * from {{%user}} where id=:id')
  ->bindValue(':id', 3)
  ->queryOne();
 
// 綁定多個參數
$data6 = YII::$app->db->createCommand('select * from {{%user}} where id=:id and name=:name')
  ->bindValues([':id' => 5, ':name' => 'eee'])
  ->queryOne();
 
// 綁定參數引用
$id = 7;
$data7 = YII::$app->db->createCommand('select * from {{%user}} where id=:id')
  ->bindParam(':id', $id)
  ->queryOne();
 
// 執行非查詢語句
$data8 = YII::$app->db->createCommand('update {{%user}} set name=:name where id=:id')
  ->bindValues([':name' => 'abcdef', ':id' => 8])
  ->execute();
 
// 當然,我們也可以用更加簡便的方法
// insert()插入
$data9 = YII::$app->db->createCommand()->insert('{{%user}}', [
  'name' => 'test',
  'sex' => 1,
  'age' => 28,
])->execute();
 
// batchInsert()批量插入
$data10 = YII::$app->db->createCommand()->batchInsert('{{%user}}', ['name', 'sex', 'age'], [
  ['111', 1, 11],
  ['222', 1, 22],
])->execute();
 
// update()更新
$data11 = YII::$app->db->createCommand()->update('{{%user}}', [
  'name' => '1242143214'
], 'id=:id', ['id' => 10])->execute();
 
// delete()刪除
$data12 = YII::$app->db->createCommand()->delete('{{%user}}', 'id=:id', ['id' => 11])->execute();
 
 
// 執行事務
$trans = YII::$app->db->beginTransaction();
 
try {
  YII::$app->db->createCommand()->update('{{%user}}', ['age' => 12], 'id=:id', ['id' => 13])->execute();
  YII::$app->db->createCommand()->update('{{%user}}', ['age' => 22], 'id=:id', ['id' => 14])->execute();
 
  $trans->commit();
} catch (\Exception $e) {
  //如果語句中有一個執行失敗,那么就將回滾
  $trans->rollBack();
  throw $e;
}
 
// 獲取表的定義信息
$info = YII::$app->db->getTableSchema('{{%user}}');

二、以AR(Active Record)方式操作數據庫

我們需要創建一個繼承自\yii\db\ActiveRecord的模型,然后重寫tableName()函數,返回要操作的表名。

<?php
namespace app\models;
 
use yii\db\ActiveRecord;
 
class MyUser extends ActiveRecord
{
  public static function tableName()
  {
    return '{{%user}}';
  }
}

常用操作如下:

// 查詢一條記錄
// asArray的作用是以數組形式返回結果
// find()會返回一個ActiveQuery對象,ActiveQuery對象繼承自yii\db\Query,所以可以使用Query中的所有查詢方法
$data1 = MyUser::find()->where(['id' => 1])->asArray()->one();
 
// 查詢多條記錄
$data2 = MyUser::find()->where([])->orderBy('id desc')->asArray()->all();
 
// 根據主鍵獲取一條記錄
$data3 = MyUser::findOne(3);
 
// 根據主鍵獲取多條記錄
$data4 = MyUser::findAll([4, 5, 6, 7]);
 
// 帶條件查詢多條記錄
$data5 = MyUser::findAll(['sex' => 1]);
 
// 運行原生SQL
$data6 = MyUser::findBySql('select * from {{%user}} where id=:id', [':id' => 8])->asArray()->one();
 
// 添加數據
// 準備一個新的實例,然后設置對應字段屬性,保存
$user = new MyUser();
$user->name = 'test';
$user->sex = 1;
$user->age = 22;
$user->save();
 
// 修改數據
// 先獲取一個對象,然后設置對應字段屬性,保存
$upd = MyUser::findOne(10);
$upd->name = 'abcdefg';
$upd->save();
 
// 修改多條數據
$data7 = MyUser::updateAll(['name' => 'update'], ['sex' => 1]);
 
// 刪除一條數據
$del = MyUser::findOne(15);
$del->delete();
 
// 刪除多條數據
$data8 = MyUser::deleteAll(['sex' => 0]);
 
// 事務操作
$user2 = MyUser::findOne(22);
$user3 = MyUser::findOne(33);
$trans = MyUser::getDb()->beginTransaction();
try {
  $user2->name = '2222';
  $user3->name = '3333';
  //修改數據
  $user2->save();
  $user3->save();
 
  $trans->commit();
} catch (\Exception $e) {
  $trans->rollBack();
  throw $e;
}

關于使用YII2框架如何對數據庫進行操作就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

標題名稱:使用YII2框架如何對數據庫進行操作-創新互聯
瀏覽地址:http://vcdvsql.cn/article26/cscccg.html

成都網站建設公司_創新互聯,為您提供App設計Google全網營銷推廣微信小程序App開發手機網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設