本次学习内容为《Yii2.0权威指南》中‘配合数据库工作’一节,以下为整理的笔记。
一、数据查询
这里所用的数据表是school表,表字段为schoolID(int),name(varchar(20)),remark(varchar(50))
查找一条记录(返回的是Array)
->queryOne();
print_r($name);
$name = Yii::$app->db->createCommand('Select name From school')
->queryColumn();
print_r($name);
返回一个标量
$name = Yii::$app->db->createCommand('Select count(*) From school')
->queryScalar();
print_r($name);
嵌入占位符来防止SQL注入
$name = Yii::$app->db->createCommand('Select * From schoolWhere schoolID = :id')
->bindValue(':id',55)
->queryOne();
print_r($name);
//bindValue:绑定一个参数值; bindValues:绑定多个参数值
$params = [':id' => 1,':status'=>'兰州大学'];
$name = Yii::$app->db->createCommand('Select * From school Where schoolID = :id and name =:name')->bindValues($params)->queryAll();
//使用多个参数简单写法
$name = Yii::$app->db->createCommand('Select * From school Where schoolID = :id and name =:name',$params)->queryAll();
print_r($name);
//可以学习的高效查询语句($id 要先定义)
$name = Yii::$app->db->createCommand('Select * From school Where schoolID = :id')->bindParam(':id',$id);
$id = 1;
$result1 = $name->queryOne();
$id = 2;
$result2 = $name->queryOne();
二、数据操作
execute()是最后一定要写的,意思是执行前面的代码。//更新操作
1.占位法写法
Yii::$app->db->createCommand('UPDATE school SET name = :name WHERE schoolID = 1')->bindValue(':name','heheh')->execute();
2.原生SQL语句写法
Yii::$app->db->createCommand("UPDATE school SET name='jsjj' WHERE schoolID=1")->execute();
3.一般写法
Yii::$app->db->createCommand()->update('school',['name'=>'南京大学'],'schoolID = 1')->execute();
//插入操作
1.原生SQL语句写法
Yii::$app->db->createCommand("Insert Into school Values ('7','RE4','河海大学'),('8','RE5','哈尔滨工程大学')")->execute();
2.一般写法
Yii::$app->db->createCommand()->insert('school',['schoolID'=>'9','remark'=>'kk','name'=>'复旦大学'])->execute();
3.批量插入写法(使用batchInsert())
//删除操作
1.原生SQL语句写法
2.一般写法
Yii::$app->db->createCommand()->delete('school','schoolID = 8')->execute();