wuye1200 / blog

alber blog
0 stars 0 forks source link

[php] yii2 mysql #12

Open wuye1200 opened 6 years ago

wuye1200 commented 6 years ago

数据模型

模型创建

namespace app\models;
use yii\db\ActiveRecord;
class Test extends ActiveRecod{

}
wuye1200 commented 6 years ago

调用模型数据

use app\models\Test;

$id= '1 or 1=1';
$sql = 'select * from test where id = 1';
$results = Test::findBySql()->all();
$results = Test::find()->where({'id'=>1})->all();
$results = Test::find()->where(['>','id',0])->all();//id>0

$results = Test::find()->where(['between','id',1,2])->all();// 1-2之间

$results = Test::find()->where(['like','title','title1'])->all();// title like %title1%
//查询结果转化成数组 降低内存使用率 对象比数组大 asArray()
$results = Test::find()->where(['between','id',1,2])-> asArray()->all()

//批量查询 每次只拿2条数据
foreach(Test::find()->batch(2) ad $tests){

}

添加数据

$test = new Test;
$test->id = 3;
$test->title = 'title3';
$test->validata();//验证数据
if($test->hasErrors){
echo'数据格式不正确';
die
}
$test->save()

修改数据

$test =Test::find()->where(['id'=>4]).one();
$test->title = 'title4';
$test->save()
wuye1200 commented 6 years ago

关联查询

$customer = Customer::find()->where(['name'=>'zhangsan'])->one();
$orders = $customer->hasMany(Order::className(),['customer_id'=>'id'])->asArray()->all();
$orders = $customer->getOrders();
$orders = $customer->orders;