从数据库执行PHP代码

从数据库执行PHP代码,php,database,Php,Database,这个问题以前被问过多次, 但我的情况与我读到的不同 我的数据库包含多个表单,这些表单将根据用户请求加载。这不是问题所在,我能处理。在这些表单中,有两个查询动态填充的字段 要从数据库中填充的我的一个字段如下所示: <label class="itemLabel" for="name">Name : </label> <input name="name" type="text" class="itemInput" value="<? echo $query

这个问题以前被问过多次, 但我的情况与我读到的不同

我的数据库包含多个表单,这些表单将根据用户请求加载。这不是问题所在,我能处理。在这些表单中,有两个查询动态填充的字段

要从数据库中填充的我的一个字段如下所示:

<label class="itemLabel" for="name">Name : </label>
    <input name="name" type="text" class="itemInput" value="<? echo $queryB[1]; ?>" readonly="readonly" />
名称:
您的PHP实例已禁用

将其更改为:

<?php echo $queryB[1]; ?>


…它应该做你期望的事情。

你的处境没有什么不同,它和其他人完全一样

答案也是一样的:不要把代码和数据混在一起
不要将代码存储在数据库中。
不要过关,不要收200美元
实现某种占位符,或者更好的是,实现一些表单生成器,并根据数据库中的数据动态创建这些表单

为什么不在数据库中只存储相关数据,如
名称
类型

类别
还有一些标志,如禁用、只读等


看看我的评论和Col Shrapnel的答案,这里有一个简单的占位符示例。您确实应该在平面文件中维护HTML(因为它实际上似乎是应用程序视图的一部分),但为了简单起见,假设它仍然驻留在数据库中。存储以下值:

<label class="itemLabel" for="name">Name : </label>
<input name="name" type="text" class="itemInput" value="{queryValue}" readonly="readonly" />
这是一个极其简化的示例,它掩盖了大量关于占位符名称、格式等的潜在问题,但它可能会帮助您开始


或者,如果您决定选择文件路由,您可以有两个文件:

查看.phtml

<label class="itemLabel" for="name">Name : </label>
<input name="name" type="text" class="itemInput" value="<?php echo $this->value; ?>" readonly="readonly" />
class View {
    public function render($file) {
        // check for file existence etc.
        require_once $file;
    }
}

$view = new View();
$view->value = $queryB[1];
$view->render('view.phtml');

实际上,您应该在value属性中放置一个占位符,从数据库加载后可以在代码中替换该占位符。您的解决方案迫使您在数据库中放置PHP变量名,这将是一场维护的噩梦。@cbuckley:我认为这个脚本不会被维护,它将按原样工作。它也是为非技术用户提供的,我是负责人。您可以指定如何在值属性中放置占位符,然后在以后替换它吗?只需将其放置在HTML中的
placeholder=
属性中即可。现在,将您想要的值保存在数据库中不是比将代码保存到如何获得您想要的值更简单吗?将来,即使脚本由您负责,您也能够记住这些细节?“我认为这个脚本不会被维护”-啊哈,最有趣的声明我认为这不是问题所在,这是我的php.ini文件
short\u open\u tag=On
@Dave:我很想听听你是如何得出这个结论的:o@Truth他说他的字段中填充了
作为一个文本值-这是PHP忽略短开放标记的典型标志。我可能错了,但很可能这就是问题所在……似乎PHP的short_open_标记是关闭的,如果是关闭的,每次值都会被解释为HTMLOh,我误解了这个问题(我认为他是在数据库中保存
部分,而不是实际值,这就是为什么它是…无论如何,+1。这两种方法都很好。但是,我有许多字段是从数据库填充的,所以这两种方法都没有用。我正在考虑将我的所有表单原样从数据库中取出,并将它们添加到中的
开关中一个单独的文件,然后
在页面中包含该文件。这足够好吗?我选择了你的答案,因为它最接近我现在实现的目标。这两种解决方案都允许你在同一个脚本中填充多个占位符/变量。如果你有许多不同的HTML片段,那么可以将它们放在单独的文件中您可以将要包含的文件名存储在数据库中,以避免使用switch语句
class View {
    public function render($file) {
        // check for file existence etc.
        require_once $file;
    }
}

$view = new View();
$view->value = $queryB[1];
$view->render('view.phtml');