Pickeroll
Pickeroll

Reputation: 978

YII2 extra condition with AND operator

I'm updating a record in this way:

Yii::$app->db->createCommand()->update('table', ['config' => json_encode($array)], 
        'field1 = :field1', [':field1' => $field1] 
        )->execute();  

My aim is to add an extra condition with the AND operator but I don't know how to do it.

I've followed this example: LINK

 // UPDATE (table name, column values, condition)
 Yii::$app->db->createCommand()->update('user', ['status' => 1], 'age > 30')->execute();

But it doesn't show a lot of possibilities.

Upvotes: 0

Views: 154

Answers (2)

Josep Vidal
Josep Vidal

Reputation: 2671

Just like an array, with each condition separated by a ,.

In your case:

Yii::$app->db->createCommand()->update(
  'table', 
   ['config' => json_encode($array)], 
   ['field1' => $field1, 'field2' => $field2]
)->execute();  

Note that with this syntax you don't need to bind params, you could specify them directly inside the array of conditions as Yii2 santizes them.

Upvotes: 1

Bharoo Jangid
Bharoo Jangid

Reputation: 282

try this way

Yii::$app->db->createCommand()
             ->update('table', ['config' => json_encode($array)],
             'field1 = :field1 AND field2 = :field2',[':field1' =>  $field1,':field2' =>  $field2])
             ->execute();

Upvotes: 1

Related Questions