Yii2資料庫查詢有關的操作

2021-07-14 22:45:35 字數 1694 閱讀 3214

注:下文所說的article為model

本文中的dd()函式,為我自己自定義的函式

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);

3:大資料查詢省記憶體處理

從資料庫取出來的是乙個個的物件

,為了節省記憶體常常需要用

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 ...