2013-04-30 74 views
0

我有以下代码,我在两个日期之间的参数上对SQL执行搜索。PHP和SQL过滤器

"SELECT * FROM lbs_ WHERE date >= '" . $dates . "' 
AND date <= '" . $datee . "' AND msisdn='$query'" 

我想要做的就是用它来对当前的日期搜索,据我的理解是日期(),但它不工作,不给我看结果在当前日期为SQL输入。

"SELECT * FROM lbs_ WHERE date = '" . date() . "' 
AND msisdn='$query'" 

这是我尝试

+0

使用'CURDATE()' – 2013-04-30 06:04:26

+0

,你可以做这样的事情'SELECT * FROM lbs_其中date =“”。日期('Y-m-d')。 '' AND msisdn ='$ query'' – 2013-04-30 06:12:52

回答

0

尝试date('Y-m-d H:i:s'),而是如果你想使用PHP的日期。

或者使用NOW()直接在SQL

+0

(“SELECT * FROM e_track_access_log WHERE member_id> 0 AND datetime_accessed = date('Ymd H:i:s')ORDER BY datetime_accessed DESC LIMIT 0,20”) 显示任何结果 – 2013-04-30 06:12:10

+0

@MaggieAckermann,'date'是一个php函数,所以:'“SELECT * FROM lbs_ WHERE date ='”。date'('Ymd H:i:s')''' AND msisdn =' $'query'“' – k102 2013-04-30 06:13:50

+0

”SELECT * FROM e_track_access_log WHERE member_id> 0 AND datetime_accessed ='“。date('Ym-d')。''ORDER BY datetime_accessed DESC LIMIT 0,20” 也不能正常工作没有结果显示 – 2013-04-30 06:24:01

0

你可以去CURDATE()和日期DIFF你必须在MySQL使用BETWEEN

"SELECT * FROM lbs_ WHERE date between CURDATE() AND $datee AND msisdn='$query'" 
0

最好的办法是现在使用的是()或CURDATE ()的MySQL本身的功能:

SELECT * FROM lbs_ WHERE date = now() AND msisdn='$query' 

SELECT * FROM lbs_ WHERE date = CURDATE() AND msisdn='$query' 
+0

我也试过这种方法仍然没有结果在php – 2013-04-30 06:27:09

+0

你有没有尝试直接在数据库上检查你的SQL查询?并尝试echo'ing你的查询y在你的PHP脚本中查看结果是否是可行的查询。大多数情况下,您的结果查询看起来像AND AND msisdn =' - 0235654',而您期望它为0235654,或者甚至简单地为null(''),这也不会产生任何结果。 – Borniet 2013-04-30 06:32:14

+0

是否该列不是日期时间设置并设置为Var? – 2013-04-30 06:37:42

0

我建议用mysql打造方法:

"SELECT * FROM lbs_ WHERE date = CURDATE() AND msisdn='$query'"