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.