Php sqlsrv_fetch_数组未获取select查询的第一行
我的选择查询:Php sqlsrv_fetch_数组未获取select查询的第一行,php,sql-server,sqlsrv,Php,Sql Server,Sqlsrv,我的选择查询: $query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' "; $result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true)); 我的循环代码是: if($row = sqlsrv_fetch_a
$query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' ";
$result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true));
我的循环代码是:
if($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC) != Null){
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC))
{
echo $row['SERVER_NAME'];
echo "\n";
}
}
我也试过:
if( sqlsrv_fetch( $result ) === false) {
die( print_r( sqlsrv_errors(), true));
}
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC))
{
echo $row['SERVER_NAME'];
echo "\n";
}
它没有任何错误。但是while循环穿过存在的第一行。删除if条件,因为调用此if$row=sqlsrv\u fetch\u array$result,sqlsrv\u fetch\u ASSOC!=空的
你可能想考虑使用这个。
if($result=== true)
{
while( $row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC))
{
echo $row['SERVER_NAME'];
echo "\n";
}
}
最后,我从代码中删除了if条件。它工作正常。最终代码是:
$query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' ";
$result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true));
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) {
echo $row['SERVER_NAME'];
echo "\n"; }
我像你说的那样进行了修改,但ui$result=sqlsrv_query$con,$queryor无法执行slect query.print\u rsqlsrv_errors,true;;如果$result===true{而$row=sqlsrv_fetch_array$result,sqlsrv_fetch_ASSOC{echo$row['SERVER_NAME'];}}您可以添加此回显结果吗:;var_dump$结果;回响结果:类型为SQL Server语句的resource11这是我在使用echo$query时得到的结果;从我的数据库中获取数据,如从审计中选择服务器\u名称\u客户\u轮询\u详细信息,其中PRODUCT\u NAME='xxx'这应该足够了:$result=sqlsrv\u query$con,$query;如果$result==false{echo Error sqlsrv_query:.print_rsqlsrv_errors,true;exit;}而$row=sqlsrv_fetch_array$result,sqlsrv_fetch_ASSOC{echo$row['SERVER_NAME'].}sqlsrv_free_stmt$result;。并且,尝试使用参数化查询来防止SQL注入攻击。
$query = "SELECT SERVER_NAME FROM AUDIT_Customer_Polling_details WHERE PRODUCT_NAME='".$product."' ";
$result = sqlsrv_query($con,$query)or die("Couldn't execute slect query".print_r(sqlsrv_errors(), true));
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC)) {
echo $row['SERVER_NAME'];
echo "\n"; }