如何显示存储在MySQL数据库中的PHP代码

3

我有一个MySQL数据库,其中一个字段中包含代码。

test test test <?php $_GET['location']; ?>  test test

我正在访问显示文件test.php?location=abc,并以以下方式从数据库中显示该记录。
 This is my <?php echo $row_display_content['location']; ?>

我得到的唯一结果是:
This is my

我不知道如何让它工作,所以需要从数据库中显示动态值来填充文本。


6
数据库是用于存储数据的,不要将代码存储在其中。 - Quentin
正确,但我想在数据库中存储的某些内容中显示动态数据。 - user974435
请通过编程方式显示您的动态内容。您希望php解释器如何理解这个内容?这是我的<?php echo test test test <?php $_GET['location']; ?> test test; ?>。那正是您正在做的事情。 - Yanki Twizzy
动态内容是通过 $_GET 传递的位置。 - user974435
好的,很酷,那我该怎么做呢?这是我的 <?php echo "测试测试测试 $_GET['location'] 测试测试"; ?>。 - user974435
3个回答

4

使用 eval 函数。顺便说一下,这是解决任何问题的可怕方法。

http://php.net/manual/en/function.eval.php

编辑:

$code = 'test test test <?php $_GET[\'location\']; ?>  test test';

eval('?>'. $code);

已经尝试过这个方法,但不起作用。一旦使用eval函数,就会出现错误。 - user974435
1
完全同意这一点。有无数种避免使用 eval 的方法。如果出现错误,那么问题就在于 eval 代码本身,而不是其他任何东西。 - GManz
1
@user974435 尝试使用 eval('?> 你的代码 <?php echo "blah"; ?>'); - John Himmelman
<?php echo eval('?> $row_display_content['location']; <?php echo "blah"; ?>'); ?> <?php echo eval('?> $row_display_content ['位置']; <?php echo "blah"; ?>'); ?> - user974435
使用eval函数。顺便说一下,这是一个可怕的方法,无论你试图解决什么问题。http://php.net/manual/en/function.eval.php编辑:$code = 'test test test <?php $_GET[\'location\']; ?> test test';eval('?>'. $code); 不起作用 ;( 相同的结果 - user974435
@user974435 看看我的例子,单引号需要转义。编辑:语法错误在你的脚本中的其他地方。 - John Himmelman

2

尝试

echo "This is my ". eval('?>' . $row_display_content[\'location\'] . '<?php ');

1

看一下eval,在数据库条目中不应包含php标签。此外,您应该问自己是否真的想将其存储在数据库中。


即使我从数据库中删除了 <?php ?> 标签,仍然无法正常工作,出现相同的错误。 - user974435
这是我如何使用 eval <?php echo eval($row_display_content['location']); ?> - user974435

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接