PHP MySql - 返回列名未知的所有记录

时间:2013-07-09 20:24:57

标签: php mysql

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

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

    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?
        }
    }

2 个答案:

答案 0 :(得分: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));

答案 1 :(得分:1)

您可以使用MYSQL_ASSOC选项获取数组(请参阅manual)。在这种情况下,您的列名称是数组的键,您可以检索它们,例如。使用array_keys()函数。