[PHP-users 13760] Re: 関数の戻り値の使い方

fumiyaKitamura php-users@php.gr.jp
Wed, 5 Mar 2003 02:26:34 +0900


キタムラです。

>  はい、そうなのですが、そうすると、SQL文の自動作成の意味がなくなると思
> います。
> 1.該当テーブルのフィールド数が、いくつあるのか
> 2.各更新データが、それぞれどのフィールドにあたるのか
> などを、考慮せずにUPDATEしたいのです。まことにわがまま勝手なお願いで、恐
> 縮です。よろしくお願いいたします。

「各更新データが、それぞれどのフィールドにあたるかを考慮せずにUpdateする」
の意味がわからないのですが

「必要パラメターを渡して」、「Update文を自動生成して実行する」ならば以下の
ようなコードはどうでしょう?

*私のところで使用しているものを簡略化したものです。簡略化後、動作確認して
 いないのでバグがあるかもしれません。
*PostgreSQLです。MySQLは適当に修正してください。
*全く当て外れな事を言ってたらごめんです。

-------関数
function QueryU($TABLE,$COL_DATS,$WHERE){
  $SET = ' set ';
  foreach ($COL_DATS as $key => $dat){
    $SET .= (strlen($dat) == 0)? "{$key}=NULL,": "{$key}='{$dat}',";
  }
  $SET = chop($SET,',');
  Sql  = 'update '.$TBL.$SET.' where '.$WHERE;
  ResultID = pg_query(ConnectID, Sql);
  Return(ResultID);
}

-------実行時
QueryU(
 'テーブル名',
 array('カラム1'=>'値1',カラム2=>'値2'),
 '検索条件'
)


ポイントは連想配列でカラムと値の組を渡している事です。
最新版のPHPでは同様の動作をする(更に洗練された)関数がサポートされて
いたと思います。(PostgreSQLだけカモ)


=================<F.Kitamura>=================
E-Mail  : fkit@sys238.jp
---
The greatest enemy of man is alcohol.
But, The Bible tells us to love our enemy.
==============================================