Gautham Sreenivasan
Gautham Sreenivasan

Reputation: 192

Inserting variables in Yii2 to Database

I am trying to insert $product, $pric and $user to database table cart. Following is the function that I have created in SiteController.php.

public function actionCartadd($id)
        {
                $product = Additem::find()
                        ->select('product')
                        ->where(['id' => $id])
                        ->one();
                $pric =  Additem::find()
                        ->select('price')
                        ->where(['id' => $id])
                        ->one();

                $user = Yii::$app->user->identity->username;


                $connection = Yii::$app->getDb();

                $result = Yii::$app->db->createCommand()
                        ->insert('cart', [
                        'product' => '$product',
                        'price' => '$pric',
                        'user' => '$user',
                        ])->execute();
                if ($result)
                         return $this->render('custstore');
        }

However, this end up in error. Can anyone suggest any fix

Upvotes: 0

Views: 202

Answers (2)

Shringiraj Dewangan
Shringiraj Dewangan

Reputation: 784

Try this following code

$result = Yii::$app->db->createCommand()->insert('cart', [
    'product' => $product->product, 
    'price' => $pric->price,
    'user' => $user
])->execute();

Upvotes: 1

Michael Krutikov
Michael Krutikov

Reputation: 492

Look at this fragment:

'product' => '$product',
'price' => '$pric',
'user' => '$user',

Use double quotes in values or just variables without quotes

Also, better way to fetch product and price:

$productItem = Additem::findOne($id);
if ($productItem instanceof Additem) {
    $product = $productItem->product;
    $pric = $productItem->price;
}

Upvotes: 0

Related Questions