0

モバイル アプリケーションで使用する Web サービスを作成しています。Web サービスは、クエリを実行し、結果を JSON として返すサポート クラスを使用します。結果セット全体を簡単に JSON として返せるようにしたいのですが、「mysql_fetch_array」は一度に 1 つのレコードしか返しません。さらに、列名がわからないため、JSON 出力を手動で生成するのは難しい場合があります。

したがって、これは2つの部分からなる質問だと思います。.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 に答える