我正在使用mysql和php从mysql数据库中拉出等于今天日期的所有用户。我遇到的问题是,每当我运行下面的代码时,我都会得到一个错误。根据错误的外观,似乎与年份有关,或者可能它不喜欢其中的圆点,但我不确定?
<?php
$today = date("d.m.y");
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE date=$today")or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo $row['name'] . " " . $row['email']. " " . $row['date'];
echo "<br />";
}
?>这是它抛出的错误:
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 '.12' at line 2发布于 2012-05-29 22:09:26
您必须在日期字符串两边添加引号:
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE date='$today'")or die(mysql_error());发布于 2012-05-29 22:10:11
您的$today变量需要用引号括起来。还需要在date列名上加上反标记,因为它是保留的。
$result = mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe
WHERE `date`='$today'")or die(mysql_error());发布于 2012-05-29 22:11:16
首先,应该将$today作为字符串添加到SQL查询中:
mysql_query("SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = '$today'");date是SQL保留字,因此必须用反引号进行转义...
但我使用MySQL本机函数和常量如NOW()、CURRENT_TIMESTAMP、SYSDATE等重新注释...
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` = NOW()
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` < NOW() - INTERVAL '2' DAYS
SELECT * FROM ymeg_chronoforms_data_NewsletterSubscribe WHERE `date` > NOW() + INTERVAL '5' HOURS等等。
https://stackoverflow.com/questions/10800819
复制相似问题