Yii - Updating a MySQL datetime column with now()

Just a quick tip which took me a little while to figure out.

If you have a "last_updated" column on your table and you want to update this manually in your code ten the easiest way would be use the MySQL NOW() function

Update some_table set last_updated_date=now();

However, and there is always a catch, if you try and use the now() function in a Yii prepared statement, it will try and update the column with the string "now()" and fail.

What you need to do is to use a CDBExpression object as follows:-

                            /.. other columns
                            'last_updated_dt'=>new CDbExpression('NOW()')

Did you know you can hire me?

I take on projects of all sizes. From Consulting to large Development Projects.

If you're starting a new Yii project and would like some help to get setup and running or you need some help with a particular module or you just need someone to develop the whole dang thing, then just ask ...

Beginning Yii ...

I'm very excited about a new Yii Training course that has just been published.

The course is designed for anyone wanting to learn Yii, whether new to frameworks or converting from another.

Eight chapters, each having five videos of between 3 and 5 minutes, take you through the basics of the Yii Framework, building a web application step-by-step.

Save 40% - introductory offer $20.99 / £13.19 / €16.19 / A$20.99

Leave a Comment

twitterfacebookgooglelinkedin https://me.yahoo.com