Yii2 createCommand 带参数

问题描述 投票:0回答:1

我需要在数据库中计算我的购物车物品,没有型号的购物车物品。尝试这样:

$id = Yii::$app->request->post('id');
$total = Yii::$app->db->createCommand('SELECT COUNT(*) FROM cart_items WHERE user_id="'.$id.'"')->queryScalar();

返回 0,但有 2 行。

$total = Yii::$app->db->createCommand('SELECT COUNT(*) FROM cart_items WHERE user_id="19"')->queryScalar();

返回2。

如何将我的参数与发布数据绑定?

更新:

public function beforeAction($action) {
        $this->enableCsrfValidation = false;
        if (parent::beforeAction($action)){
            Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
            return true;
        }
        return false;
    }
public function behaviors()
    {
        return [            
            'verbs' => [
                'class' => VerbFilter::className(),
                'actions' => [
                    'checkout' => ['post','get'],
                ],
            ],
        ];
    }
mysql count yii2
1个回答
3
投票

你可以使用bindValues()

  $total = Yii::$app->db->createCommand('SELECT COUNT(*) 
         FROM cart_items WHERE user_id=:id')
    ->bindValues([':id'=>$id])
    ->queryScalar();
© www.soinside.com 2019 - 2024. All rights reserved.