使用 Yii2 查詢生成器

Yii2 提供了從資料庫中檢索資料的有效方法。考慮具有欄位 emp_id,emp_name 和 emp_salary 的簡單僱員表的示例。為了檢索員工姓名及其工資,我們使用查詢。

select emp_name,emp_salary from employee

要在 Yii2 中生成上述查詢,有很多方法。其中一種方法是使用 yii \ db \ Quer y 物件。

//creates a new \yii\db\Query() object
$query=new \yii\db\Query(); 

$rows=$query->select(['emp_name','emp_salary']) //specify required columns in an array
             ->from('employee') //specify table name
             ->all(); //returns an array of rows with each row being an associative array of name-value pairs.

我們可以使用 foreach 迴圈遍歷 $ rows 陣列中的每個名稱 - 值對。

foreach ($rows as $row) {
    echo "Employee Name: ".$row['emp_name'].",Employee Salary: ".$row['emp_salary']."<br>";
}

這將輸出

員工姓名:Kiran,員工薪酬:25000

員工姓名:Midhun,員工薪酬:50000

員工姓名:Jishnu,員工薪酬:20000

員工姓名:Ajith,員工薪水:25000

員工姓名:Akshay,員工薪水:750000

更多例子

假設我們需要找到薪水等於 25000 的員工的名字。我們可以用 sql 編寫查詢

select emp_name from employee where salary=25000

在 Yii2 中,用於生成上述查詢的程式碼

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

$rows=$query->select(['emp_name']) 
            ->from('employee')
            ->where(['emp_salary'=>25000]) //specify the condition as an associative array where key is column name
            ->all(); 

如果我們需要找到薪水大於 25000 的員工姓名,我們可以在 Yii2 中編寫程式碼

  $rows=$query->select(['emp_name']) 
        ->from('employee')
        ->where(['>','emp_salary', 25000]) 
//Here first element in the above array specify relational operator used, second element specify the table name and third the value itself.
        ->all();