我正在尝试获取数据库中包含两个日期之间的所有行。当我在2013-05-01和今天的日期搜索会议时,我没有得到任何结果,但是当我在没有WHERE子句的情况下搜索时,我看到今天有两个记录。我想,因为日期是DATETIME,我会尝试将它们作为日期投射,但这似乎不起作用。
我的功能如下:
function meeting_reports($connection, $to, $from)
{
$status = array();
$sql =
$connection->query (
"SELECT `meeting_id`,`visibility`,`meeting_start`
FROM `details`
WHERE DATE(`meeting_start`) BETWEEN '{$from}' AND '{$to}'"
);
$status["total_meetings"] = 0;
$status["cancelled_meetings"] = 0;
if($sql->num_rows > 0)
{
while($results = $sql->fetch_assoc())
{
if($results["visibility"]==0)
{
$status["total_meetings"]++;
}
elseif($results==1)
{
$status["total_meetings"]++;
}
elseif($results["visibility"]==2)
{
$status["total_meetings"]++;
}
elseif($results["visibility"]==3)
{
$status["cancelled_meetings"]++;
}
}
}
return $status;
}
我做错了什么?
答案 0 :(得分:1)
我在这里看到几个问题。 您需要澄清您的数据类型是日期还是日期时间。假设日期时间。 如果您正在寻找在特定日期发生的会议, 如果x = y,则无法搜索x和y之间的事件。之间没有任何关系 它。如果您使用的是日期时间日期类型,请将00:00:00连接到您的开始日期 和你的结束日期23:59:59,现在你有一个有效的范围,包括有关日期的有效时间。或者对于单日期搜索,之间做什么?和? +间隔1天,并通过日期两次'12 -25-2015 00:00:00'
另外,您在查询中直接使用字符串,这可以打开您 sql注入攻击。对绑定参数进行谷歌搜索,永远不要使用 sql查询中的变量再次发生。
答案 1 :(得分:0)
试试这个
this.wait(5000, function(){
this.scrollToBottom();
processPage();
});