• ベストアンサー

PHPによるSQL文の中にPHP処理を記述するには

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++等の処理を 含まさせることができるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • teala
  • ベストアンサー率42% (6/14)
回答No.1

以下ソースは実際に試してはいないので、 動作の保証はありませんが、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"; } のように、[.]を使用して文字列の内容を繋ぐことが出来ます。

yuzuru0024
質問者

お礼

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

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

インクリメントの演算子は使えないですが、計算式を処理することはできるので 場合によっては $i=1; $QUERY=<<<eof ・・・ `{$DATA[$i]}`, `{$DATA[$i+1]}`, `{$DATA[$i+2]}` eof; みたいな書き方も有効かもしれません

yuzuru0024
質問者

お礼

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

関連するQ&A