I am getting sql violation error while quering this code


(Arunwebber) #1

I am trying to put condition in my sql query.


 'query' => Inventory::find()->

                where(['user_id' =>  Yii::$app->user->identity->id ])->

                andWhere('placed_date'<= date('Y-m-d H:i:s')),

        ]),

But I am getting the following error




SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

The SQL being executed was: SELECT COUNT(*) FROM `inventory` WHERE (`user_id`=113) AND ()

Error Info: Array

(

    [0] => 42000

    [1] => 1064

    [2] => You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

)


(Maurizio Domba Cerin) #2

Check your andWhere(), you did not put there any condition.


(Arunwebber) #3

I want to put the condition as less than or equal to the present server time How can I do that?


(Maurizio Domba Cerin) #4

In your code you did not set any condition, check few andWhere() examples and you will get it ;)


(Arunwebber) #5

andWhere('publish_on_date <= NOW()');

This solved the issue.


(Maurizio Domba Cerin) #6

But do you understand the difference? Now you did give a condition, before not.


(Arunwebber) #7

Yeah, Before yii2 took it as an element of an array


(Maurizio Domba Cerin) #8

Exactly, and you were missing the condition as the first parameter to andWhere, before that assignment.