find()返回一个ActiveRecord对象,需要使用one()或者all()获取最终数据。
findBySql()接收SQL,返回一个ActiveRecord对象,需要使用one()或者all()获取最终数据。
findOne()和findAll()直接返回对象数组,不需要再使用one()或者all()。
use app\models\Users;
public function actionListCountry() {
//获取所有
$list = Users::find()->orderBy('name')->all();
//获取一条
$one = Users::findOne('MK');
//更新
/ 修改 name 为 M.K 并在数据库中保存更改
$one->name = 'M.K';
$one->save();
// 返回多行. 每行都是列名和值的关联数组.
// 如果该查询没有结果则返回空数组
$posts = Yii::$app->db->createCommand('SELECT * FROM post')
->queryAll();
// 返回一行 (第一行)
// 如果该查询没有结果则返回 false
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=1')
->queryOne();
// 返回一列 (第一列)
// 如果该查询没有结果则返回空数组
$titles = Yii::$app->db->createCommand('SELECT title FROM post')
->queryColumn();
// 返回一个标量值
// 如果该查询没有结果则返回 false
//bindValue():绑定一个参数值
//bindValues():在一次调用中绑定多个参数值
//bindParam():与 bindValue() 相似,但是也支持绑定参数引用
$count = Yii::$app->db->createCommand('SELECT COUNT(*) FROM post')
->queryScalar();
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=:id AND status=:status')
->bindValue(':id', $_GET['id'])
->bindValue(':status', 1)
->queryOne();
$params = [':id' => $_GET['id'], ':status' => 1];
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=:id AND status=:status')
->bindValues($params)
->queryOne();
$post = Yii::$app->db->createCommand('SELECT * FROM post WHERE id=:id AND status=:status', $params)->queryOne();
}
public function actionTest(){
$customer = new Users();
$customer->name = 'Qiang';
$customer->save(); // 等同于 $customer->insert();
// 删除多个年龄大于20,性别为男(Male)的客户记录
$customer->deleteAll('a
yii 数据库操作汇总
最新推荐文章于 2022-04-10 21:40:30 发布