1
當我使用bindParam在Yii2:Yii2綁定參數去了現場的原始SQL語句
$arr = [1,3];
$str = implode(' ,', $arr);
Yii::$app->db->createCommand('DELETE FROM article_tag WHERE article_id=:id AND tag_id IN (:str)')
->bindValue(':id', $this->id)
->bindValue(':str', $str)
->execute();
,如果我綁定海峽到現場,原始SQL似乎變得
SQLSTATE[22007]: Invalid datetime format: 1292 Truncated incorrect DOUBLE value: '1 ,3'
The SQL being executed was: DELETE FROM article_tag WHERE article_id=13 AND tag_id IN ('1 ,3')
它在這裏告訴我不正確的double值。我想這是因爲它向sql添加了單引號。我怎麼能處理這個?
它會在這裏刪除多條記錄嗎?我使用IN,因爲我想使用一個sql刪除多個記錄。 – tyan
@tyan是的,當您將數組作爲值傳遞給'where語句中的鍵值對時,它會自動轉換爲'IN'語句。請參閱[提供的鏈接](http://www.yiiframework.com/doc-2.0/yii-db-queryinterface.html#where%28%29-detail),數組和「IN」就是一個例子。 – arogachev