簡體   English   中英

來自輸入(datetime_local)字段的MYSQL查詢

[英]MYSQL query from input (datetime_local) field

我的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'
");

變量進入“ for”循環:

  • $ datest = $ _ POST ['date_start'];
  • $ daten = $ _ POST ['date_end'];

除了帶有變量( $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'

它工作正常。 我不知道為什么它不能與變量一起使用。 請幫忙。

只是為了使您步入正軌,並證明一旦您習慣了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

讓我知道這是否可以解決您的問題。 並且隨時詢問是否有任何不清楚的地方。

最后我找到了解決辦法。 在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,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM