- ベストアンサー
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++等の処理を 含まさせることができるでしょうか?
- みんなの回答 (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"; } のように、[.]を使用して文字列の内容を繋ぐことが出来ます。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
インクリメントの演算子は使えないですが、計算式を処理することはできるので 場合によっては $i=1; $QUERY=<<<eof ・・・ `{$DATA[$i]}`, `{$DATA[$i+1]}`, `{$DATA[$i+2]}` eof; みたいな書き方も有効かもしれません
お礼
回答ありがとうございます。 演算子によっては使える場合もあるのですね。 いろいろやってみます。
お礼
回答ありがとうございます。 途中でSQL文を切って連結するれば 一応可能なんですね。