0

我正在编写一个用于移动应用程序的 Web 服务。Web 服务使用支持类来执行查询并以 JSON 形式返回结果。我希望能够将整个结果集简单地返回为 JSON,但“mysql_fetch_array”一次只返回一条记录。此外,我不知道列名,因此手动生成 JSON 输出可能会很棘手。

所以我想这是一个两部分的问题。在 .NET 中,有一个列集合,通过它可以获取列名。PHP中有这样的东西吗?而且,如何将整个结果集作为 JSON 返回,而无需迭代该集并手动构建 JSON。谢谢!薇薇

    public static final function executeSelectQuery($qry){
        $connection = mysql_connect(ADS_DB_HOST, ADS_DB_USERNAME, ADS_DB_PASSWORD) or die(ADS_ERROR_MSG . mysql_error());
        $db = mysql_select_db(ADS_DB_NAME) or die(ADS_ERROR_MSG . mysql_error());
        $result = mysql_query($qry) or die(ADS_ERROR_MSG . mysql_error());
        mysql_close();

        while($rows = mysql_fetch_array(($result))){
            // how do I access column names?
        }
    }
4

2 回答 2

3
public static final function executeSelectQuery($qry){
    $connection = mysql_connect(ADS_DB_HOST, ADS_DB_USERNAME, ADS_DB_PASSWORD) or die(ADS_ERROR_MSG . mysql_error());
    $db = mysql_select_db(ADS_DB_NAME) or die(ADS_ERROR_MSG . mysql_error());
    $result = mysql_query($qry) or die(ADS_ERROR_MSG . mysql_error());
    mysql_close();
    $results = array();
    while($rows = mysql_fetch_assoc(($result))){
        $results[] = $rows;
    }
    return $results;
}

然后把它变成json

$json = json_encode(Classname::executeSelectQuery($qry));
于 2013-07-09T20:28:52.177 回答
1

MYSQL_ASSOC您可以使用选项获取数组(请参阅手册)。在这种情况下,您的列名作为数组的键,您可以检索它们,例如。使用array_keys()功能。

于 2013-07-09T20:28:22.917 回答