使用 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();