0

下面是我使用的代码,它可以工作,但只获取行而不是列,我将数据导入谷歌图表工具图表,它使用第一行作为列信息,使其不准确。

有没有办法获取列名并将其添加到数组中?

<?php
    require "connectioninfo.php";

    if ($databaseConnection == false)
    {
        echo "<p>Database connection failed...</p>";
    }
    else
    {

    $query = "SELECT * FROM avTable";
    $statement = sqlsrv_query($databaseConnection, $query);
    echo $statement;
    while ($row = sqlsrv_fetch_array($statement))
        {
            $rows[] = array($row['BusinessName'],$row['Hygiene']);
        } 

        $dataTable = json_encode($rows,JSON_NUMERIC_CHECK);

    sqlsrv_free_stmt($statement); 
    }
    sqlsrv_close($databaseConnection);      
?> 
4

1 回答 1

0

你可以这样做:

while ($row = sqlsrv_fetch_array($statement))
{
    $arr = array();
    for($row as $key => $value){
        // $key is your column name
        // $value is the value of $row[$key]

        // Copy data on clean array...
        $arr[$key] = $value;
    }

    // Process on column name...

    $rows[] = $arr;
}

编辑 :

SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.yourTableName')

或者更好的是,您可以通过查询Information Schema 视图获得这些信息以及更多信息。

select * from INFORMATION_SCHEMA.COLUMNS 
where TABLE_NAME='yourTable'

之后,您将检索 $result["COLUMN_NAME"]、$result["DATA_TYPE"]、$result["TABLE_NAME"]、$result["CHARACTER_MAXIMUM_LENGTH"] 等...

您将有一个第一个查询来确定列名,然后是一个包含所有数据的第二个查询。

于 2013-04-04T07:03:32.623 回答