Max Frai
Max Frai

Reputation: 64366

Calling NOW() function in MySQL

I'm using php for making queries for mysql. Here is one:

UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"

curDate - DateTime type. The problem is that after this query curDate of given email is

0000-00-00 00:00:00

What's wrong?

Upvotes: 3

Views: 3469

Answers (2)

Mikulas Dite
Mikulas Dite

Reputation: 7941

Since you're using timedate function which is based on proper timestamp, try setting it with Timestamp(Now()).

Upvotes: 0

Mark Byers
Mark Byers

Reputation: 839234

Your PHP probably looks like this now:

$sql = 'UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = "$resEmail"';

The single quotes prevent the variable's value from being substituted into the string. You will need to change it to this:

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '$resEmail'";

You should also be aware that you may have an SQL injection vulnerability here. Consider using mysql_real_escape_string to escape the email address.

$sql = "UPDATE `subscribers` SET `curDate` = NOW() WHERE `e_mail` = '" .
       mysql_real_escape_string($resEmail) . "'";

Upvotes: 5

Related Questions