2011-01-24 27 views
2

私はPropelプラグインとMySQLデータベースでSymfony 1.1を使用しています。私の結果を得るために、私は自分のクエリをPropel接続に渡し、executeQuery()を呼び出します。ResultSetカラム名の取得

クエリで結果が取得されないときに、結果セットの列名を取得しようとしています。結果が得られたら、配列のキー名を取るだけです。結果がないときは、getRow()はfalseを返します。したがって、配列キーを取得できません。

私のクエリは、さまざまな列名のエイリアスを持つ複数のテーブルで構成されています。

まだPropelオブジェクトを使用している間に列名を取得する方法はありますか?それは具体的な表がある場合は、それが上と言われているよう

答えて

2

MySQLのクレオールドライバは、 "古典的な" MySQL関数を使用しています。これも可能です。 mysql_fetch_field()を使用すると、返された行がなくても特定のフィールドに関する情報を取得できます。正しい結果リソースを渡すだけで、ResultSetgetResource()メソッドで取得できます。

+0

それは私が必要としたものです。本当にありがとう。 mysql_fetch_fieldsとforループを組み合わせると、必要なものすべてが得られます。 – clang1234

1
SHOW COLUMNS FROM `table_name`; 
+0

残念ながら、私は単純に1つのテーブルでクエリを処理しているわけではありません。この問合せは、複数の表を結合し、様々な列に別名を付けて構成されています。私はこの説明を編集してopを編集します。 – clang1234

0

、あなたが行うことができます(table_nameでSHOW COLUMNS;)。

複雑なクエリがある場合、その解決策の1つは正規表現を使用して文字列を解析することです。

関連する問題