テーブルに保存したphpコードを実行する方法を教えてください - PHPプロ!Q&A掲示板

4923

  • 0P

テーブルに保存したphpコードを実行する方法を教えてください

質問日時 / 2018年2月16日 13:36    回答数 / 3件

Questioner:  kamata  このエントリーをはてなブックマークに追加 

キーワード / キーワードが設定されていません

<?php
include_once dirname(__FILE__) . "/settings.php";
$sql="select sql_code from `Investigation_Queries` where seq = 3";
$db_exist = $dbh->prepare($sql);
$db_exist->execute();
$ret_exist = $db_exist->fetchAll();
echo $ret_exist[0]['sql_code'];
?>

$ret_exist[0]['sql_code']にはphpコードが入っています。
実行結果は予想通りコードを吐き出しただけでした。
これを実行させるにはどんなやりかたがあるのでしょうか?

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01kamataevalで実行できたんですがphpとhtmlの混じったコード
 ┗A01-1shimix>echo $ret_exist[0]['sql_code']; これでキチンと
  ┗A01-1-1kamata>shimix様 ありがとうございます。 headerは$re

回答一覧

並び替え:

A01
answererkamata [2月16日 21:35]

evalで実行できたんですがphpとhtmlの混じったコードだと上手くいかないのでphp部分を、そのままevalにhtml部分をechoに食わせてからevalに食わすように加工しなきゃならないのかなと考えてます。
他に何か上手いやり方があれば教えてください。

この意見に回答する

ツリーへ TOPへ

A01-1
replyershimix [2月19日 13:21]

>echo $ret_exist[0]['sql_code'];

これでキチンと表示されるということは(提示されたソースにはありませんが)header('content-type: text/plain'); を実行しているのですよね?

#キチンとは表示されていないということならいいですが(汗


>$ret_exist[0]['sql_code']にはphpコードが入っています。

取得したコードをテンポラリファイルに書き出してからincludeするのはダメですか?


(蛇足)
1件しかないデータ(ですよね?)に対してfetchAll()する意図は何でしょう。取得件数をチェックしているわけでもなさそうですし・・・。単純にfetchすれば、余計な [0] を付けずに済むと思います。

この意見に回答する

ツリーへ TOPへ

A01-1-1
replyerkamata [2月21日 15:37]

>shimix様

ありがとうございます。

headerは$ret_exist[0]['sql_code']に入っています。

>取得したコードをテンポラリファイルに書き出してからincludeするのはダメですか?

fileを使いたくなかったので、それは思い至りませんでした。
evalに引き渡すためのパーサーを書いたのですが、それは上手くいきました。
eval内外の変数がどこまで有効かの確認がまだなので使えそうになかったら試してみます。

>1件しかないデータ(ですよね?)に対してfetchAll()する意図は何でしょう。

いや、複数件です。
上手くいかなかったのでソースを削り落として1件にしてあるだけです。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)