[PHP-users 13837] Re: SQL文の作成

Koji KUSANAGI php-users@php.gr.jp
Fri, 07 Mar 2003 22:00:07 +0900


草薙です。

以前私のメールに記した、可変変数を使用されることで *2 の部分がご要望の形
に近づくとは思います。可変変数についてはお調べになられましたでしょうか?

各フィールドと同じ名称の変数に代入すべき値が入っているとすれば、下記コー
ドのような処理をすれば *1 〜 *2 の代替になるかと思います。未検証ですが。

$cnt      = 0;
$COL_DATS = array();

$result   = mysql_list_fields( $dbname, $tbname, $conn);

while ( $cnt < mysql_num_fields( $result)) {
    $fdname[$cnt]            = mysql_fieldname( $result, $cnt);
    $COL_DATS[$fdname[$cnt]] = ${$fdname[$i]};
    ++$cnt;
}

もちろん、変数が未定義だった場合や、register_globals = On で変数が汚染さ
れていた場合等を考慮する必要はあるかとは思いますが。

# 私にはこの方向性でのモジュール化にあまりメリットは感じられません。

> <*2>を、いろいろやってみたのですが、$dat部に、データが入ってなくて、
>$keyに$がついた、$datの中身が$category_name などとなってしまいます。値が
>どうしても渡せません、と言うか、渡すほうの記述が悪いのだと。

お節介かも知れませんが、色々やってみた内容を全て書いて頂けると、田村様が
失敗した原因が特定できるかもしれませんし、私の方で同じ失敗をしてしまうこ
とを防げるかもしれません。

----------------------------------------------------
草薙考司 <kusanagi@crumple.co.jp>