是否使用唯一的列名从PHP运行SQL查询?
我已经运行了很多次SQL查询PHP。通常我是这样做的:是否使用唯一的列名从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
$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]”为什么起作用。