MAYSQLコマンドをPHPで行うにあたりまして、そのコマンドに使うパラメーターが、コマンドする度に変化する場合、SQL文そのものが、PHPでリライトされる仕組みを作りたいと思っております。試しにやってみると、web上にそれらしいSQLのテキストが生まれるところまでは出来るのですが、それが、PHPプログラムとして動くわけではなく、本当に「単なるテキスト」としてweb上に存在してしまいます。
PHPのプログラムそのものが動的に変わるPHPプログラムって、あり得るのでしょうか?
ページ: 1
投稿者 | 投稿 |
---|---|
#1 2011 年 12 月 9 日(金) 9:10
|
|
会員
登録者: 12 2011
返信数: 3
|
MAYSQLコマンドをPHPで行うにあたりまして、そのコマンドに使うパラメーターが、コマンドする度に変化する場合、SQL文そのものが、PHPでリライトされる仕組みを作りたいと思っております。試しにやってみると、web上にそれらしいSQLのテキストが生まれるところまでは出来るのですが、それが、PHPプログラムとして動くわけではなく、本当に「単なるテキスト」としてweb上に存在してしまいます。
PHPのプログラムそのものが動的に変わるPHPプログラムって、あり得るのでしょうか? |
#2 2011 年 12 月 13 日(火) 15:39
|
|
管理者
登録者: 2 2008
返信数: 4
|
もちろん PHP プログラムから PHP のソースコードを生成することも可能です。そこで生成された PHP のソースコードをその場で実行するには eval() 関数を使えば良いです。
<?php $php_code = '$hoge = "hoge"; echo $hoge;'; eval($php_code); ?> でも SQL 文を条件によって書き換える位であれば、eval() を使わなくても SQL 文を動的に生成すれば可能だと思います。 <?php $id = '777'; $dname = 'ichijoureimei1'; $shindata = 'joureimei2'; $sql = sprintf("UPDATE jorei SET %s='%s' WHERE ID='%s'", $dname, $shindata, $id); <略> mysql_query($sql); |
#3 2011 年 12 月 14 日(水) 9:15
|
|
会員
登録者: 12 2011
返信数: 3
|
koyhoge様ありがとうございました。お蔭様で解決です。結局。お勧めのsprintfで処理しましたが、eval()も興味津々で、トライしてみたいと思います。
|
ページ: 1
日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています