我正在编写一个用于移动应用程序的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?
}
}
答案 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()
函数。