我通过php查询带有odbc连接的数据库。当我查询数据库时,它返回第一行两次,然后其余行返回正确的次数。
示例查询:
$stm = SELECT[sUsername] FROM [dbo].[Abilis].[Users] WHERE sUsername = ?;
$pstm = odbc_prepare($conn, $stm);
$exc = odbc_execute($query, array($Username));
我也尝试过使用DISTINCT,但也没用。
编辑:
for($i=0; $i<odbc_num_rows($pstm);$i++){
$row = odbc_fetch_array($pstm, $i);
if($row['OnCreditHold'] == '1'){
$out = '<button style="color:red;margin:0 auto;" class="btn" onclick="'.'window.location.href='."'information.php?info=".$row['Account_no'];
$out .= "'".'">'.$row['Name'].'</br>';
$out .= $row['Del_ad1'].'</button>';
}
else{
$out = '<button class="btn" style="margin: 0 auto;" onclick="'.'window.location.href='."'information.php?info=".$row['Account_no'];
$out .= "'".'">'.$row['Name'].'</br>';
$out .= $row['Del_ad1'].'</button>';
}
echo $out;
}
答案 0 :(得分:1)
您已经检查了此应用以外的查询结果是否合适 - 对您有好处。这意味着问题是您的循环结构,或者您获取odbc_fetch_array()
等数据的方法。
我遇到过这个问题一次,我不记得解决方案了。我不得不尝试其他方法来隔离原因。
例如,请尝试for ()
。
foreach ($elems as $elem) { ... }
当然,在您遇到问题时,请简化所有其他方面。例如,删除if()
结构。