アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHP内のSQL発行部分の

$QUERY="
    INSERT
    INTO
        TABLE
    (
        `FIELD_A`,
        `FIELD_B`,
        `FIELD_C`
    ) values (
        `{$DATA[1]}`,
        `{$DATA[2]}`,
        `{$DATA[3]}`
    )
";

このようなクエリを

$QUERY="
    INSERT
    INTO
        TABLE
    (
        `FIELD_A`,
        `FIELD_B`,
        `FIELD_C`
    ) values (
        `{$DATA[($i++)]}`,
        `{$DATA[($i++)]}`,
        `{$DATA[($i++)]}`
    )
";

のような感じにしたいのですが
うまくいきません。

どうすれば、クエリー文の中で$i++等の処理を
含まさせることができるでしょうか?

A 回答 (2件)

以下ソースは実際に試してはいないので、


動作の保証はありませんが、PHPの変数などを、
文字列内に含める場合には、[.](ドット)を使用して、
"12".$i."45"のように繋げると良いと思います。

$QUERY="
    INSERT
    INTO
        TABLE
    (
        `FIELD_A`,
        `FIELD_B`,
        `FIELD_C`
    ) values (
        `".$DATA[$i++]."`,
        `".$DATA[$i++]."`,
        `".$DATA[$i++]."`
    )
";

また、if文などをはさみたい場合は、

$i = 1;
$QUERY = "SELCT * FROM test";
if( $i ){
$QUERY.= "WHERE flag = 1";
} else {
$QUERY.= "WHERE flag = 0";
}

のように、[.]を使用して文字列の内容を繋ぐことが出来ます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
途中でSQL文を切って連結するれば
一応可能なんですね。

お礼日時:2008/07/28 18:40

インクリメントの演算子は使えないですが、計算式を処理することはできるので


場合によっては
$i=1;
$QUERY=<<<eof
・・・
`{$DATA[$i]}`,
`{$DATA[$i+1]}`,
`{$DATA[$i+2]}`
eof;
みたいな書き方も有効かもしれません
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
演算子によっては使える場合もあるのですね。
いろいろやってみます。

お礼日時:2008/07/28 18:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!