• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:式の書き方を教えていただけないでしょうか?)

式の書き方を教えていただけないでしょうか?

このQ&Aのポイント
  • $sql_tの式でデータが入らない問題が発生しています。
  • SELECTの中のテーブル名を具体的に入れるとデータが入るが、変数で書くと入らなくなる理由を教えてください。
  • 式の書き方を教えてください。

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

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.2

sql文の問題以前に、その文字列を作成しているプログラミング言語の変数展開について理解してないと思われる。 まずは、作成した文字列 $sql_t が意図した文字列になっているのかを確認するのが先でしょう。 mysql_query() 関数を使ってるところをみると、php なのだろうけど、他のプログラミング言語の場合は、まずはそれを明記してください。 とりあえず、phpの波括弧構文では " ken.{$tbl_nu1} " なら 「 ken.tbl_1 」 のように展開されますが、 " ken.{'$tbl_nu1'} "では {''} が残って 「 ken.{'tbl_1'} 」 となり、SQL文としてテーブル名と認識されません。 $の手前に記号がくるのなら波括弧を使わなくても " ken.$tbl_nu1 " でも十分だと思うけど。

kanata777
質問者

お礼

回答ありがとうございます。はい、PHPです。 変数展開の考え方、ご指導ありがとうございます。 ken.$tbl_nu1・・・の形で書きましたら うまくいきました。

その他の回答 (1)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

変数を持ってくるならリテラルからはずさなければなりません。 $sql_t="INSERT INTO `ken`.`kar` (`imei`,`mei`,`nyu`) SELECT `imei`,`mei`,`nyu` from ken.{'"$tbl_nu1"'} union SELECT `imei`,`mei`,`nyu` from ken.{'"$tbl_nu2"'}"; となります。リテラル(定数)の連結が+なら $sql_t="INSERT INTO `ken`.`kar` (`imei`,`mei`,`nyu`) SELECT `imei`,`mei`,`nyu` from ken.{'" + $tbl_nu1 + "'} union SELECT `imei`,`mei`,`nyu` from ken.{'" + $tbl_nu2 + "'}"; です。

kanata777
質問者

お礼

回答ありがとうございます。 ken.$tbl_nu1・・・の形で書きましたら うまくいきました。

関連するQ&A