在php中使用sqlsrv的奇怪错误,其中$ _POST正常工作且$ _GET没有

时间:2015-07-02 12:51:31

标签: php forms post get sqlsrv

我有一些PHP脚本,其中使用POST方法工作,而GET没有。

php文件#1(仅限相关部分):

    echo "<form method='get' action=" . $_SERVER['PHP_SELF'] . ">
    <input type='text' name='date' placeholder='yyyy-mm-dd'>
    <input type='submit' name='submit'>
  </form>";

if (!empty($_GET['submit'])) {
  $date = $_GET['date'];

  $sql = "select COUNT(cTriggerName) as Darab, cState as Status, right(cTriggerName,2) as DepotCode
  from BNDOCEX2TLOG
  where
  StartTime > ? and
  StartTime < dateadd(d,1,?)
  group by right(cTriggerName,2) , cState";

  $stmt = sqlsrv_query($conn, $sql, array($date, $date));

  if ($stmt === false) {
  die(print_r(sqlsrv_errors(), true));
  }

  $_SESSION['result'] = $stmt;
}

php文件#2(仅限相关部分):

while ($row = sqlsrv_fetch_array($_SESSION['result'], SQLSRV_FETCH_ASSOC)){
        echo "<tr>";
            echo "<td>".$row['Darab']."</td><td>".$row['Status']."</td><td>".$row['DepotCode']."</td>";
        echo "</tr>";
    }

当我在表单中使用post方法时,$_POST['submit']$_POST['date']一切正常,但当我在表单中使用get方法时$_GET['submit']$_GET['date']我收到以下致命错误:

sqlsrv_fetch_array():9此处不是有效的ss_sqlsrv_stmt资源中心代码

我已使用$datevar_dump()检查print_r()变量的值,并且在使用get或post时它们完全相同(例如2015-04-20 as一个字符串)。我无法想到为什么这对get不起作用。

0 个答案:

没有答案