我遇到了mysql查询的问题:
$req=mysql_query("
SELECT Device_Type, Device_Number, sum(Ok) as Ok, sum(Rejected) as Rejected, sum(QC_Rejected) as QC_Rejected
FROM `Iteration_TotalStats`
where Line_Id = $line and Device_Number IN ($dev) and time > '$datest' and time < '$daten'
");
变量&#34; for&#34;循环:
除了带变量($dates
和$datee
)的时间参数外,一切正常。
输入在这里:
<input type="datetime-local" name="date_start" value="2016-04-19T09:00"></input>
<input type="datetime-local" name="date_end" value="2016-04-19T21:00"></input>
但是当我在mysql查询中直接输入这个日期和时间格式时,如下所示:
time > '2016-04-19T09:00' and time < '2016-04-19T21:00'
它工作正常。我不知道为什么它不适用于变量。请帮忙。
答案 0 :(得分:0)
只是为了让你进入富有的轨道,并且为了表明PDO在你习惯之后并不那么难,我继续将你的代码转换为PDO:
$qry = $db->prepare(
'SELECT '
. 'Device_Type, '
. 'Device_Number, '
. 'sum(Ok) as Ok, '
. 'sum(Rejected) as Rejected, '
. 'sum(QC_Rejected) as QC_Rejected '
. 'FROM `Iteration_TotalStats` '
. 'WHERE Line_Id = :line '
. 'AND Device_Number IN ($dev) '
. 'AND time > :start '
. 'AND time < :end'
);
$qry->bindParam(':line', $line);
$qry->bindParam(':start', $_POST['date_start']);
$qry->bindParam(':end', $_POST['date_end']);
$result = $qry->execute();
显然,你必须首先实例化$db
变量,但这只是一个PDO实例,应该从手册中清楚说明:http://php.net/manual/en/pdo.construct.php
如果这可以解决您的问题,请告诉我。如果有什么不清楚的话,请随时询问。
答案 1 :(得分:0)
最后我发现了一个问题。 在mysql查询中,如果这样做:
SELECT Device_Type, Device_Number, sum(Ok) as Ok, sum(Rejected) as Rejected, sum(QC_Rejected) as QC_Rejected, DATE_FORMAT(time, '%Y-%m-%dT%H:%i')
FROM `Iteration_TotalStats` where Line_Id = $line and Device_Number IN ($dev) and time > '$ds' and time < '$de'
现在我使用mysqli withoun bind,它的工作正常。