所以在我使用sqlsrv函数之前,我使用的是MySQL函数。
代码对我来说很完美,但是现在我已经用sqlsrv取代了MySQL函数,它给了我这个错误。
sqlsrv_fetch_array() expects parameter 2 to be long
代码用于计算是这样的:
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql = "SELECT * FROM login WHERE username = '".($_SESSION['username'])."'";
$res = sqlsrv_query($conn, $tsql);
while($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC)) {
$aantalATV = $row['ATV'];
$aanvragenATV = "SELECT COUNT(soort) AS totaal FROM goedgekeurd WHERE username = '".($_SESSION['username'])."' AND soort='ATV' ";
$rowATV = sqlsrv_fetch_array($conn, $aanvragenATV);
$aantalATV= $aantalATV - $rowATV[0];
echo "aantal ATV dagen resterende:" .$aantalATV."<br />";
}
问题出在哪里,是否需要更改查询?
感谢任何帮助!
基于以下答案的新代码段:Rikesh
$aantalATV = $row['ATV'];
$aanvragenATV = "SELECT COUNT(soort) AS totaal FROM goedgekeurd WHERE username = '".($_SESSION['username'])."' AND soort='ATV' ";
$res = sqlsrv_query($conn, $aanvragenATV);
$rowATV = sqlsrv_fetch_array($res, SQLSRV_FETCH_NUMERIC);
$aantalATV= $aantalATV - $rowATV[0];
echo "aantal ATV dagen resterende:" .$aantalATV."<br />";
答案 0 :(得分:0)
您第二次错误地使用sqlsrv_fetch_array
。
sqlsrv_fetch_array($conn, $aanvragenATV);
sqlsrv_fetch_array将第一个参数作为sql语句&amp;第二次获取类型。所以改成它,
sqlsrv_fetch_array($aanvragenATV,SQLSRV_FETCH_NUMERIC);
注意:您的代码似乎已使用$rowATV[0]
,您需要按类型NUMERIC
获取它,或者根据需要更改它。