mysql联合查询返回php数组中相同的列名


mysql Union query return the same column name in php array

我写了一个代码从Mysql数据库中获取数据,从不同的表中选择多个数据,结果是好的,但列名是相同的

    <?php
        $objConnect = mysql_connect("localhost","xxxxx","xxxxx") or die(mysql_error());
        $objDB = mysql_select_db("musicstore");
        $strSQL = "select count(song_Id) as 'cnts' from song  where date_rel = CURDATE()  
union select count(album_id) as 'cnta' from album ";
        $objQuery = mysql_query($strSQL) or die (mysql_error());
        $intNumField = mysql_num_fields($objQuery);
        $resultArray = array();
        while($obResult = mysql_fetch_array($objQuery))
        {
            $arrCol = array();
            for($i=0;$i<$intNumField;$i++)
            {
                $arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
            }
            array_push($resultArray,$arrCol);
        }
        mysql_close($objConnect);
        echo json_encode($resultArray);
    ?>

结果是[{"cnts":"38"},{"cnts":"3"}]

我不知道为什么它没有从定义名称

中获取列名

添加虚拟列来实现这一点。

$strSQL = " select count(song_Id) as 'cnts', 'cnta' from song  where date_rel = CURDATE()  
union select 'cnta', count(album_id) as 'cnta' from album " ;