php – Yii2 – 这对执行查询有什么影响吗?如果是的话

我将在yii2中执行以下查询.

$result = MyModel::find()->where(['res_model'=>$res_model])->all();

上面的查询和这一个查询有什么区别:

$result = MyModel::find()->where( 'res_model = :res_model',[
                    ':res_model' => $res_model] )->all();

两者都运行良好,但在性能和可用性方面都有点混乱.
请问有谁可以澄清这些吗?

最佳答案 将执行相同的查询.

如果您有多个key = value条件,则第一个版本很有用.

如果您需要执行更复杂的查询,可以使用第二个版本.像这样的东西

$result = MyModel::find()->where('some_field = (select max(date) from another_table where another_field=:param)',['param' => $param])->all();

性能和安全性是一样的.

点赞