[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.
==============================================