0

結合を含むことができるデータベースからレコードを取得するために使用されるアクティブなレコード クラスに取り組んでいます。

今、私のテストでは、異なる値を含む共通の列名を持つデータがいくつかありましたが、mysql_fetch_assoc関数を実行すると、共通名の 1 つの列のみが返され、残りのデータが失われる可能性があります。そのため、 を 2 つのループに置き換えることを計画していmysql_fetch_assocます。1 つ目は列名を取得するため ( を使用mysql_fetch_column)、2 つ目はデータを取得するため (1 つが別のループにネストされ、すべてのデータをフェッチする 2 つのループを持つことにより、次に返される配列にまとめると、列名とその親テーブル参照が含まれます (または構文JOINがある場合)。AS

しかし、これは効率的ではない可能性があり、処理時間がかなりかかる可能性があるのではないかと心配しています。そのため、誰かが両方の方法の効率を明確にすることができますか、またはmysql_fetch_assoc列のテーブル参照を前に追加するような関数がある場合は?

追加

これはPHP用のmysqlライブラリを使用していますが、将来的にライブラリをPDO駆動に拡張することを検討していますが、上記と同様の方法を使用します(を使用してgetColumnMeta

4

2 に答える 2

2

A common solution to the real problem (not XY one you asked on) is giving aliases to "common" field names:

SELECT goods.id as gid, categories id as cid ...

and so on

However, it scarcely would be a problem if you use your second approach with mysql_fetch_field() (which you actually mean) and mysql_fetch_row()

于 2013-04-30T13:53:46.433 に答える