dongqianzhan8325 2015-07-02 12:51
浏览 26

在php中使用sqlsrv的奇怪错误,其中$ _POST有效,而$ _GET则没有

I have little php script where using POST method works and GET doesn't.

php file #1 (relevant parts only):

    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 file #2 (relevant parts only):

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>";
    }

When I use the post method in the form and $_POST['submit'] and $_POST['date'] everything works but when I use the get method in the form and $_GET['submit'] and $_GET['date'] I get the following fatal error:

sqlsrv_fetch_array(): 9 is not a valid ss_sqlsrv_stmt resourceenter code here

I have checked the value of the $date variable with both var_dump() and print_r() and they are exactly the same both when using get or post (eg. 2015-04-20 as a string). I can't think of a reason why this wouldn't work with get.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大