为什么sqlsrv_fetch_array没有获取选择查询的第一行


why the sqlsrv_fetch_array doens't get the first row of the select query

我正在使用这个选择

$sql1=" SELECT pole FROM Table1 WHERE dva='d'";

它应该返回表中元素的所有内容(因为在"DVA"字段中它们都有"d"),并使用此函数执行此操作

while( $row = sqlsrv_fetch_array($st)) {
 // echo $row[0]."<br />";
print_r($row);
}

这是我得到的结果,它从第二行开始,依此类推......

Array ( 
    [0] => testxz2 
    [pole] => testxz2 
) 
Array ( 
    [0] => some data 
    [pole] => some data 
) 
Array ( 
    [0] => some data 
    [pole] => some data 
) 

在我尝试这个之前,这让我得到了第 1 行和我从上层代码获得的其他行,

   while($pole=sqlsrv_get_field($st,0)){echo $pole;}

你能把整个代码放在获取调用之前吗

只需在以下之前编辑该部分:

   if( sqlsrv_fetch( $st ) === false) {
     die( print_r( sqlsrv_errors(), true));

我认为这是错误,因为您正在获取第一个元素,而第二个元素在您用于获取所有行时缺少第一个元素,因为已经获取...尝试在第一次获取之前使用您的while循环。