首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sqlsrv进行计数: sqlsrv_fetch_array()要求参数2为long

使用sqlsrv进行计数: sqlsrv_fetch_array()要求参数2为long
EN

Stack Overflow用户
提问于 2013-06-19 14:35:03
回答 1查看 2.9K关注 0票数 0

因此,在使用sqlsrv函数之前,我使用的是MySQL函数。

这段代码对我来说工作得很好,但是现在我已经用sqlsrv替换了MySQL函数,它给出了这个错误。

代码语言:javascript
复制
sqlsrv_fetch_array() expects parameter 2 to be long

用于计算的代码如下:

代码语言:javascript
复制
$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

代码语言:javascript
复制
$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 />";
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-19 14:39:39

您第二次错误地使用了sqlsrv_fetch_array

代码语言:javascript
复制
sqlsrv_fetch_array($conn, $aanvragenATV);

sqlsrv_fetch_array将第一个参数作为sql语句和第二个提取类型。所以把它改成,

代码语言:javascript
复制
sqlsrv_fetch_array($aanvragenATV,SQLSRV_FETCH_NUMERIC);

注意:从您的代码看,您似乎已经使用了$rowATV[0],您需要通过类型NUMERIC来获取它,或者根据您的需要更改它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17184376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档