注:下文所說的article為model
本文中的dd()函式,為我自己自定義的函式
3:大資料查詢省記憶體處理function dd($var)
1:防止sql注入,用站位符的方式$id=$request->get('id');
$sql="select * from article where id=:id";
$r=article::findbysql($sql,[':id'=>$id])->all();
2:資料庫查詢操作
獲取全部資料
$data=article::find()->all();
查詢單條資料id=5
$data=article::find()->where(['id'=>'5'])->all();
id>3的資料
$data=article::find()->where(['>','id',3])->all();
id>2,id<5 id:2-5之間的
$data=article::find()->where(['between','id',2,5])->all();
title like 111
$data=article::find()->where(['like','title',"111"])->all();
查詢單條資料id=5 one()方法返回的是個物件,all()方法返回的是個大陣列裡面為物件
$data=article::find()->where(['id'=>'5'])->one();
查詢一條資料 id=5的,因為id為主鍵
$data=article::findone(5);
查詢多條資料 id=3,4,5的,因為id為主鍵
$data=article::findall([3,4,5]);
dd($data);
從資料庫取出來的是乙個個的物件,為了節省記憶體常常需要用
asarray()
方法轉換成為陣列
。
$data=article::find()->asarray()->all();
列印結果例如:
如果取的資料特別多,比如一下取出1000條資料,如果都以物件的方式,會特別耗費記憶體,yii給提供的方式,就是通過batch()方法,指定每次查詢幾條,分多次查詢,比如1000條資料,先查詢前100條,然後存入乙個陣列中,再查
詢100條,再存入該陣列,分10次取出,就相當於只佔了100條的記憶體。每100個一組。
兩條兩條的取,輸出結果為2-
2-1-
foreach(article::find()->batch(2) as $article)
foreach(article::find()->batch(2) as $article)
列印$data的結果為:
yii2資料庫增刪改查詢操作
簡單的說 1.先配置好資料庫 位置在config db.php 更改如下 return class yii db connection dsn mysql host localhost dbname music username root password root charset utf8 2.新...
yii2 查詢資料庫語法
1 query0 imgroupuser find where gid 56680dfc60b215d62104a4d8 select user client id all ar2 query1 imgroupuser findall gid 56680dfc60b215d62104a4d8 ar3...
基礎YII2資料庫操作
注意 為了保持精度,從資料庫中取出的資料都被表示為字串,即使相應的資料庫列型別數值。當建立從乙個帶引數的sql乙個db命令,你應該總是使用繫結引數的方法來防止sql注入攻擊。引數繫結是通過預處理語句來實現。除了防止sql注入攻擊,也可通過一次準備sql語句和多次使用不同的引數執行它提高效能 yii ...