因此,在使用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 />";发布于 2013-06-19 14:39:39
您第二次错误地使用了sqlsrv_fetch_array。
sqlsrv_fetch_array($conn, $aanvragenATV);sqlsrv_fetch_array将第一个参数作为sql语句和第二个提取类型。所以把它改成,
sqlsrv_fetch_array($aanvragenATV,SQLSRV_FETCH_NUMERIC);注意:从您的代码看,您似乎已经使用了$rowATV[0],您需要通过类型NUMERIC来获取它,或者根据您的需要更改它。
https://stackoverflow.com/questions/17184376
复制相似问题