1

我有一些 php 代码正在对 mySQL 数据库进行查询 - 如果我在 phpmyadmin 中进行查询,它可以工作 - 但如果我在 php 中进行相同的搜索,它就不起作用

从 phpmyadmin 复制的工作正常返回所有行

SELECT * FROM contract WHERE DATE(`fdos`) >= '2013-05-01' And DATE(`fdos`) <= '2013-05-09'

我的 php 代码不起作用(两个查询都没有)只返回它应该返回的 30 行中的 3 行。日期的格式不能改变,这就是我 _GET 数据的方式。

$startdate = "2013-05-01";
$enddate = "2013-06-01";
function getAllContracts($startdate, $enddate)
{
$sd = date('Y-m-d', strtotime(str_replace("-","/",$startdate)));
$ed = date('Y-m-d', strtotime(str_replace("-","/",$enddate)));
$query1="SELECT * FROM contract WHERE DATE(`fdos`) >= '$sd' And  DATE(`fdos`) <= '$ed'";
$query2="SELECT * FROM contract WHERE DATE(`fdos`) >= Date('$startdate') And     DATE(`fdos`) <= Date('$enddate')";
}

其他要添加的是mysql我将日期存储为这种格式'2013-05-01'的文本,这就是为什么我必须调用DATE

4

2 回答 2

1

你必须在这个变量周围加上 "

$startdate = "2013-05-01";
$enddate = "2013-06-01";
于 2013-04-20T15:01:24.187 回答
0

我认为问题出在查询本身,尝试使用BETWEENcomaprison

$query1="SELECT * FROM contract WHERE DATE(`fdos`) BETWEEN '$sd' AND '$ed'";
于 2013-04-20T15:21:12.870 回答