我在我的网站的另一个区域使用了这段代码,基本上它计算数据库中的数据行,现在它可以正常工作。
现在我想对另一个数据库进行另一次计数,但这次日期列是日期时间格式,查询似乎不起作用。
以下是我用来获取两天前一天的代码
$day_ago2 = date('Y-m-d', mktime(0, 0, 0, date("m") , date("d") - 1, date("Y")));
以下是mysql代码,
SELECT * FROM page_views WHERE date='$day_ago2' and member ='$site_id'
我们将不胜感激。
由于
答案 0 :(得分:0)
使用DATEDIFF()
功能
SELECT * FROM page_views WHERE DATEDIFF(NOW(), date) = -2 and member ='$site_id'
答案 1 :(得分:0)
尽量不要创建以mysql函数/运算符命名的MySQL字段(如“date”或“where”)。
如果您真的想在PHP端使用日期函数,无论出于何种原因,这是一种更易读的形式:
// strtotime can take neat english input
$day_ago = date('Y-m-d', strtotime("-2 day") );
你当然会这样做:
SELECT * FROM page_views WHERE date(`date`)='$day_ago' and member ='$site_id'
编辑:
如果从网页上获取输入,请务必清理所有输入字段。 Day_ago是安全的,因为带有用户输入的strtotime()会更糟糕地给你一个0.但是,确保$ site_id是安全的。例如,在查询之前发出此信息:
$site_id = intval( $_GET['site_id'] );
或
$site_id = mysql_real_escape_string( $_GET['site_id'] );