gpt4 book ai didi

php - 两个日期之间的MySQL查询作为时间戳

转载 作者:行者123 更新时间:2023-11-29 04:00:05 26 4
gpt4 key购买 nike

我一直在尝试从我的数据库中选择两个默认日期之间的项目:现在和 60 天前。但是,我尝试的所有查询都不起作用。

这是我尝试过的:

$Now = date("Y-m-d");
$Before = date("Y-m-d", strtotime("-60 days");

// This is try1
$sql = "SELECT * FROM myTable WHERE myTimestamp BETWEEN " . $Before . " AND " . $Now;

// This is try2
$sql = "SELECT * FROM myTable WHERE myTimestamp >= " . $Before . " AND myTimestamp <= " . $Now;

我不知道如何做到这一点。我已经查看了与该问题相同的其他问题,但所提供的解决方案均无效。

请注意:这些查询不会给出错误。他们只是不找回任何东西。我还使用 get_defined_vars() 将日期打印到页面上。这是他们展示的内容:

[Now] => 2016-01-07
[Before] => 2015-11-08

最佳答案

“请注意:这些查询不会出错。” - 这 " . $Before . " AND " . $Now;而你正在使用 2016-01-072015-11-08字符串而不是整数

" . $Before . " AND myTimestamp <= " . $Now 相同

另外,这些连字符被解释为减号,是一种数学运算。

即:2016 minus 01 minus 07 等导致语法错误。

因此,这些应该读作:

  • WHERE myTimestamp BETWEEN '$Before' AND '$Now' ";

  • WHERE myTimestamp >= '$Before' AND myTimestamp <= '$Now' ";

您没有得到任何结果,因为您没有检查这些语法错误。

咨询http://dev.mysql.com/doc/en/string-literals.html关于字符串文字。

另请咨询When to use single quotes, double quotes, and backticks in MySQL

您也没有查询或获取任何内容,我们不知道您正在使用哪个 MySQL API 进行连接,或者您是否成功连接到您的数据库。

咨询:

你要么使用 mysqli_fetch_array()mysqli_fetch_assoc()取决于你想在这里做什么,这是一个 mysqli_示例。

查阅手册:

您应该利用 MySQL 的内置日期/时间函数。

并且不要将它们混合在一起,那样是行不通的。

咨询:Can I mix MySQL APIs in PHP?

根据您用来连接的 MySQL API,这里有一些用于错误处理的链接。


脚注:

看来您是 MySQL 的新手,因此我建议您查看我给您的那些链接,在 Stack 上找到教程和问答。

您还应该考虑使用准备好的语句:

为了帮助对抗 SQL injection

关于php - 两个日期之间的MySQL查询作为时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34658406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com