Yii2.0数据库增删改查的操作示例

  介绍

小编给大家分享一下Yii2.0数据库增删改查的操作示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

<强> 1。简单查询:

():一,根据查询结果返回查询的第一条记录。   所有():,根据查询结果返回所有记录。   count():,返回记录的数量。   sum():返回指定列的总数。   平均():,返回指定列的平均值。   min():,返回指定列的最小值。   max():,返回指定列的最大值。   标量():,返回查询结果的第一行中的第一列的值。   列():,返回查询结果中的第一列的值。   ():存在,返回一个值,该值指示查询结果是否有数据。   ():在哪里,添加查询条件吗   与():该查询应执行的关系列的表。   indexBy():,根据索引的列的名称查询结果。   asArray():,以数组的形式返回每条记录。

应用实例:

顾客::发现()→一个(),,,,,此方法返回一条数据;   顾客::发现()→(),,,,,此方法返回所有数据;   顾客::发现()→count();,,,,此方法返回记录的数量;   顾客::发现()→平均();,,,,此方法返回指定列的平均值;   顾客::发现()→min(),,,,,此方法返回指定列的最小值,;   顾客::发现()→max(),,,,,此方法返回指定列的最大值,;   顾客::发现()→标量(),,,,,此方法返回值的第一行第一列的查询结果;   顾客::发现()→列();,,,,此方法返回查询结果中的第一列的值;   顾客::发现()→存在();,,,,此方法返回一个值指示是否包含查询结果的数据行;   顾客::发现()→asArray()→一个(),,,,,以数组形式返回一条数据;   顾客::发现()→asArray()→(),,,,,以数组形式返回所有数据;   顾客::发现()→(条件)→asArray()→一个(),,,,,根据条件以数组形式返回一条数据;   顾客::发现()→(条件)→asArray()→(),,,,,根据条件以数组形式返回所有数据;   顾客::发现()→(条件)→asArray ()→orderBy (& # 39; id  desc # 39;)→(),,,,,根据条件以数组形式返回所有数据,并根据ID倒序;

<强> 2。关联查询:

ActiveRecord::具():返回对应关系的单条记录   ActiveRecord:: hasMany():返回对应关系的多条记录

应用实例:

//客户表模型:CustomerModel //订单表模型:OrdersModel//国家表模型:CountrysModel//首先要建立表与表之间的关系,//在CustomerModel中添加与订单的关系   ,,,,,   Class  CustomerModel  extends  yiidbActiveRecord   {   ,,,…   ,,,,   ,,,public  function  getOrders ()   ,,,{   ,,,,,,,//客户和订单是一对多的关系所以用hasMany   ,,,,,,,//此处OrdersModel在CustomerModel顶部别忘了加对应的命名空间   ,,,,,,,//id对应的是OrdersModel的id字段,order_id对应CustomerModel的order_id字段   ,,,,,,,return  $ this→hasMany (OrdersModel::类名(),(& # 39;id # 39;=祝辞& # 39;order_id& # 39;]);   ,,,}   ,,,,   ,,,public  function  getCountry ()   ,,,{   ,,,,,,,//客户和国家是一对一的关系所以用具   ,,,,,,,return  $ this→具(CountrysModel::类名(),(& # 39;id # 39;=祝辞& # 39;Country_id& # 39;]);   ,,,}   ,,,....   }   ,,,,,//,查询客户与他们的订单和国家   CustomerModel:发现()→(& # 39;订单# 39;,,& # 39;增长# 39;)→();//,查询客户与他们的订单和订单的发货地址   CustomerModel:发现()→(& # 39;orders.address& # 39;)→();//,查询客户与他们的国家和状态为1的订单   CustomerModel:发现()→([   ,,,& # 39;订单# 39;,=祝辞,function (查询),{   ,,,,,,,查询→美元引入(& # 39;status =, 1 & # 39;);   ,,,,,,,},   ,,,,,,,& # 39;增长# 39;   ])→();

注:与中对的订单应getOrders

常见问题:

在查询时加了→选择();如下,要加上order_id,即关联的字段(比如:order_id)比如要在选择中,否则会报错:未定义的指数order_id

//,查询客户与他们的订单和国家   CustomerModel::发现()→选择(& # 39;order_id& # 39;)→与(& # 39;订单# 39;,,& # 39;增长# 39;)→();   findOne()和findAll ()://,查询关键值为10的客户   时间=美元customer 顾客::findOne (10);=$ customer 顾客::找()→在((& # 39;id # 39;,=祝辞,10])→();//,查询年龄为30日状态值为1的客户=$ customer 顾客::findOne((& # 39;年龄# 39;,=祝辞,30日,& # 39;状态# 39;,=祝辞,1]);=$ customer 顾客::找()→在((& # 39;年龄# 39;,=祝辞,30日,& # 39;状态# 39;,=祝辞,1])→();//,查询关键值为10的所有客户   时间=美元customers 顾客::findAll (10);=$ customers 顾客::找()→在((& # 39;id # 39;,=祝辞,10])→();//,查询关键值为10,11、12的客户=$ customers 顾客::findAll ([10, 11, 12]);=$ customers 顾客::找()→在((& # 39;id # 39;,=祝辞,[10,11,12]])→();//,查询年龄为30日状态值为1的所有客户   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Yii2.0数据库增删改查的操作示例