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