程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Yii deleteByAttributs 用法,慎用Dao的delete

Yii deleteByAttributs 用法,慎用Dao的delete

編輯:關於PHP編程

本文章來給各位同學介紹關於Yii deleteByAttributs 用法,慎用Dao的delete,希望此文章對大家會有所幫助。

Yii框架一定要慎用Dao的delete,一不小心它生不成條件的話,就變成了整表刪除。

可以用ActiveRecord的deleteByAttributes或deleteAll方法相對不容易寫錯。

deleteByAttributes用法如下:

 代碼如下 復制代碼

MyClass::model()->deleteAllByAttributes(array(
    'phone_number'=>$phoneNumber,
));

或者第一個參數為空,使用第二個條件參數

 代碼如下 復制代碼

MyClass::model()->deleteAllByAttributes(array(),'`phone_number` = :phone_number',array(
    ':phone_number'=>$phoneNumber,
));

或者使用deleteAll():

 代碼如下 復制代碼

MyClass::model()->deleteAll('`phone_number` = :phone_number',array(
    ':phone_number'=>$phoneNumber,
));

再來一個帶in條件的

 代碼如下 復制代碼

$condition = new CDbCriteria();
$condition->addCondition('status=:status');
$condition->params = array(':status'=>1);
$condition->addInCondition('user_id',array(100111,100221,100221));
User::model()->deleteAll($condition);Dao帶in條件的示例


Yii::app()->db->createCommand()
->delete('mw_user', array('and', 'user_id=:user_id', array('in', 'position_id', array(1,2,3))),array(':user_id'=>121111));

但是請慎用DAO的delete,當你的條件寫錯一點,它將無法生成where條件,同時sql語句中也沒有了where,但還不一定報錯,結果就成了沒有where的delete,結果會是整表被刪除了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved