Php 使用sqlsrv进行计数:sqlsrv_fetch_array()预期参数2较长

Php 使用sqlsrv进行计数:sqlsrv_fetch_array()预期参数2较长,php,sql,sqlsrv,Php,Sql,Sqlsrv,所以在我使用sqlsrv函数之前,我使用的是MySQL函数 代码对我来说工作得非常好,但是现在我用sqlsrv替换了MySQL函数,它给了我这个错误 sqlsrv_fetch_array() expects parameter 2 to be long 用于计数的代码如下所示: $conn = sqlsrv_connect( $serverName, $connectionInfo); $tsql = "SELECT * FROM login WHERE username = '".($_SE

所以在我使用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 />";
}
$conn=sqlsrv\u connect($serverName,$connectionInfo);
$tsql=“从用户名为“”的登录名中选择*”($\会话['username'])。“”;
$res=sqlsrv_查询($conn,$tsql);
而($row=sqlsrv\u fetch\u数组($res,sqlsrv\u fetch\u ASSOC)){
$aantalATV=$row['ATV'];
$aanvragenATV=“选择COUNT(soort)作为goedgekeurd中的totaal,其中username=”($\u SESSION['username'])。“'AND soort='ATV'”;
$rowATV=sqlsrv_fetch_数组($conn$aanvragenATV);
$aantalATV=$aantalATV-$rowATV[0];
回声“安塔尔亚洲电视台达根餐厅:“.$安塔拉塔电视台。”
”; }
问题在哪里?是需要更改的查询吗

感谢您的帮助

基于以下答案的新代码片段: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 />";
$aantalATV=$row['ATV'];
$aanvragenATV=“选择COUNT(soort)作为goedgekeurd中的totaal,其中username=”($\u SESSION['username'])。“'AND soort='ATV'”;
$res=sqlsrv_查询($conn$aanvragenATV);
$rowATV=sqlsrv\u fetch\u数组($res,sqlsrv\u fetch\u NUMERIC);
$aantalATV=$aantalATV-$rowATV[0];
回声“安塔尔亚洲电视台达根餐厅:“.$安塔拉塔电视台。”
”;
您第二次错误地使用了
sqlsrv\u fetch\u数组

sqlsrv_fetch_array($conn, $aanvragenATV);
将第一个参数作为sql语句,第二个获取类型。那么换成,

sqlsrv_fetch_array($aanvragenATV,SQLSRV_FETCH_NUMERIC);

注意:从您使用的代码来看,
$rowATV[0]
您需要通过键入
数值来获取它,或者根据需要更改它。

工作起来很有魅力,但是还需要另一行,以便关闭$conn变量。我将发布新脚本。