如何在数据库中存储PHP函数的页面内容?

时间:2017-06-08 17:04:41

标签: php oracle

我正在开发自己的CMS,使用对象PHP和Oracle作为数据库。

我的页面正在运行一个index.php文件,并包含我存储函数的其他文件。

现在我考虑将所有页面内容存储在数据库中,但是我准备了使用分页和排序功能打印表格的函数。因此,当我需要将包含任何文本的表格包含在存储在数据库中的帖子中时,我需要使用 eval()函数。

我听说 eval()函数可以执行存储在我的Oracle数据库中的所有函数,但出于某种原因,这不是推荐的解决方案。

在不使用eval()的情况下解决此问题的最佳方法是什么?

以下是我使用的代码部分:

打印内容的PHP代码:

public static function pageContent(){
 if (isset($_GET['pid'])){
   $pid = $_GET['pid']
    $pQuery = "SELECT pcontent FROM page_base where pid = $pid";
    $connect = $_SESSION['connection'];
    $stid = oci_parse($connect, $pQuery);
    oci_execute($stid);
    while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
        foreach($row as $item){
            echo eval($item);
        }
    }
 }
}

PHP功能打印表(简化)

protected static function writeTable($argument, $color, $rpp){
     $connect = $_SESSION['connection'];
     $argument = Content::addSort($argument);
     $stid = oci_parse($connect, $argument);
     oci_execute($stid);
     $ncols = oci_num_fields($stid);
    ?>
    <div class="widget-table-title
     <?php echo $color ?>
     ">
     <?php
    Content::tableTitles($stid, $ncols);
    ?>
    </div>
     <div class="widget-table bg-white">
     <?php
    Content::fetchPage($stid, $rpp, $color);
    ?>
    </div>
    <?php
    Content::paginationLinks(oci_num_rows($stid),$rpp, $color);
}

SQL表

create table page_base(
    pid integer primary key not null,
    ptitle varchar2(30) not null,
    pcontent varchar2(2000) not null
);

查看作者的SQL查询

class Queries{
   $showAuthors = "SELECT NAME, AGE, ADDRESS FROM AUTHORS";
   ...
}

添加网页内容的SQL查询

insert into page_base values(page_base.nextval, 'Home Page', 
'?>Some text. <?php Content::writeTable(Queries::$showAuthors,"bg-
yellowplane", 50);');

查询:: $ showAuthors是内容SQL查询的类中的静态变量。

bg-yellowplane只是CSS中的颜色选择器

0 个答案:

没有答案