是否使用唯一的列名从PHP运行SQL查询?

是否使用唯一的列名从PHP运行SQL查询?,php,sql,sql-server,sql-server-2012,Php,Sql,Sql Server,Sql Server 2012,我已经运行了很多次SQL查询PHP。通常我是这样做的: $conn = sqlsrv_connect( $serverName, $connectionInfo); $sql = "SELECT AREA,UNIT,COMPLEX,PROPERTY FROM TrimTable"; $query = sqlsrv_query($con if ($query === false){ echo "Could not link to SQL Server"; } whi

我已经运行了很多次SQL查询PHP。通常我是这样做的:

$conn = sqlsrv_connect( $serverName, $connectionInfo);    
$sql = "SELECT AREA,UNIT,COMPLEX,PROPERTY FROM TrimTable";
    $query = sqlsrv_query($con

if ($query === false){  
     echo "Could not link to SQL Server";
}
while ($row = sqlsrv_fetch_array($query))
{   
      $AREA[] = "$row[AREA]";
      $UNIT[] = "$row[UNIT]";
      $COMPLEX[] = "$row[COMPLEX]";
      $PROPERTY[] = "$row[PROPERTY]";            
}  
在这之后,我使用我的数组并以我想要的方式操纵它们。上面这个特殊的代码可以工作。但是我在表中有几个列被命名为unique。表中的一列是
循环类型
。还有一列带有
ID.
。我在网上查了一下,但什么都没找到。我如何对这些数据运行查询

更新 这是我正在尝试的代码:

$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "SELECT AREA,UNIT,COMPLEX,`LOOP TYPE` as LOOP, PROPERTY FROM TrimTable";
$query = sqlsrv_query($conn,$sql);
if ($query === false){  
       echo "Could not link to SQL Server";
}
while ($row = sqlsrv_fetch_array($query))
{   
    print_r($row);
}  

在查询中使用括号和别名:

$conn = sqlsrv_connect( $serverName, $connectionInfo);    
$sql = "SELECT AREA,UNIT,COMPLEX,PROPERTY, [LOOP TYPE] as LOOP, [ID#] as ID FROM TrimTable";
$query = sqlsrv_query($conn,$sql);

if ($query === false){  
    echo "Could not link to SQL Server";
}
while ($row = sqlsrv_fetch_array($query))
{   
    $AREA[] = "$row[AREA]";
    $UNIT[] = "$row[UNIT]";
    $COMPLEX[] = "$row[COMPLEX]";
    $PROPERTY[] = "$row[PROPERTY]";      
    $LOOPTYPE[] = "$row[LOOP]";              
    $ID[] = "$row[ID]";    
}  

在查询中使用括号和别名:

$conn = sqlsrv_connect( $serverName, $connectionInfo);    
$sql = "SELECT AREA,UNIT,COMPLEX,PROPERTY, [LOOP TYPE] as LOOP, [ID#] as ID FROM TrimTable";
$query = sqlsrv_query($conn,$sql);

if ($query === false){  
    echo "Could not link to SQL Server";
}
while ($row = sqlsrv_fetch_array($query))
{   
    $AREA[] = "$row[AREA]";
    $UNIT[] = "$row[UNIT]";
    $COMPLEX[] = "$row[COMPLEX]";
    $PROPERTY[] = "$row[PROPERTY]";      
    $LOOPTYPE[] = "$row[LOOP]";              
    $ID[] = "$row[ID]";    
}  

@这只是显示空页。不起作用。您应该能够为列指定别名。空页可能是语法错误。是否将任何内容记录到错误日志中?运行
print\r($row)
查看列名,然后使用它们。同时删除双引号-它应该是
$row['AREA']
,而不是
“$row[AREA]”
(更改后,@splash58的注释可能是您的救星)。@uri2x:I收到以下错误“sqlsrv_fetch_array()希望参数1是资源,布尔值在“确保使用与上面相同的代码,但是在
while
块中放置一个
打印($row)
,以查看结构。它不能以任何方式影响
sqlsrv\u fetch\u array($query)
命令。@splash58只显示空页。不起作用。您应该能够为列指定别名。空页可能是语法错误。是否将任何内容记录到错误日志中?运行
print\r($row)
查看列名,然后使用它们。同时删除双引号-它应该是
$row['AREA']
,而不是
“$row[AREA]”
(更改后,@splash58的注释可能是您的救星)。@uri2x:I收到以下错误“sqlsrv_fetch_array()希望参数1是资源,布尔值在“确保使用与上面相同的代码,但是在
while
块中放置一个
打印($row)
,以查看结构。它不能以任何方式影响
sqlsrv\u fetch\u array($query)
命令。我得到以下错误:“sqlsrv\u fetch\u array()希望参数1是资源,布尔值在中给出”,我认为这是可行的。但这就是我遇到的错误:“致命错误:允许内存大小为134217728字节(试图分配8003字节)”我想我已经解决了。如果执行此操作,$LOOPTYPE[]=“$row[LOOP]”;它起作用了。while循环中的所有内容都必须采用这种格式。好的,我根据你的发现更新了答案。但不确定“$row[LOOP]”为什么起作用。我得到了以下错误:“sqlsrv_fetch_array()希望参数1是资源,布尔值在“我认为这可以起作用”。但这就是我遇到的错误:“致命错误:允许内存大小为134217728字节(试图分配8003字节)”我想我已经解决了。如果执行此操作,$LOOPTYPE[]=“$row[LOOP]”;它起作用了。while循环中的所有内容都必须采用这种格式。好的,我根据你的发现更新了答案。但不确定“$row[LOOP]”为什么起作用。