php如何将数据库中的日期等同于当前日期

时间:2015-05-13 02:49:36

标签: php mysql

*我有这个连接数据库的代码(vtiger_leadscf),它从中获取数据。我想要获得的唯一数据是当数据库中的日期等于当前日期时。我的代码似乎不起作用*

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "cvgcrm";
$today = date("Y-m-d");
$today_time = strtotime($today);

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT fname, date, lname FROM vtiger_leadscf where date =   &today_time ";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "Name: " . $row["fname"]. "" . $row["date"]. " " . $row["lname"]. "         <br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

1 个答案:

答案 0 :(得分:4)

where date = &today_time显然是不正确的,我希望这不是一个错字。

  • 我在评论中提到的&离键盘上的$非常远。

&应该是$,它是variable

where date = $today_time

现在,如果那里的值是一个字符串,则需要引用它。

where date = '$today_time'

不这样做,MySQL肯定会抱怨它。

但是,在测试了部分代码之后,它返回1431475200,是一个整数。因此,您可能不需要引用它,但请确保您的date列是int类型。否则,您需要引用变量。

执行$result = mysqli_query($conn, $sql) or die(mysqli_error($conn));会触发关于&today_time的语法错误。

如果您想使用日期/时间,最好使用MySQL的日期时间功能。

否则,您可能会在以后查询时结束更多工作。

  • CURDATE()相当于您现在使用的内容,使用起来更有效。
  

将当前日期作为'YYYY-MM-DD' YYYYMMDD 格式的值返回,具体取决于函数是在字符串还是数字上下文中使用。

  • NOW()也是您可以使用的另一项功能。
  

'YYYY-MM-DD HH:MM:SS' YYYYMMDDHHMMSS.uuuuuu 格式返回当前日期和时间值,具体取决于函数是否用于字符串或数字上下文中。该值以当前时区表示。

如果您的date列属于DATE类型,则只需使用$today = date("Y-m-d");

然后,您需要引用$today变量。

where date = '$today'

使用$today_time = strtotime($today);会将2015-05-13转换为1431475200,因此我怀疑这是您想要使用的内容。只有您知道date列的类型。

来自手册https://dev.mysql.com/doc/refman/5.0/en/datetime.html

DATE类型用于具有日期部分但没有时间部分的值。 MySQL以'YYYY-MM-DD'格式检索并显示DATE值。支持的范围是'1000-01-01'到'9999-12-31'。