是否可以在记录集结果中回显变量?

时间:2019-09-23 17:44:53

标签: php

我有一个PHP页面,可动态确定它所引用的城市。同一页面可用于许多城市,并且需要具有文本段落,以在其他文字内容中呈现$ city变量。

内容是存储在MySQL数据库中的信息的多个段落,并且使用MySQL RAND()函数,我拉回了不同的段落以使许多城市之间的内容保持一定的独特性。这些段落中包含$ city变量。

问题在于,包含$ city变量的这些段落在客户端显示时从不呈现变量值。

详细信息:
该城市在页面的早期被创建为var(由于PHP是一种脚本语言并且在脚本页面中按顺序工作,因此已被引用)。建立城市后,我将创建一个变量: $ city

例如var是这样创建的:

<?php $city = $_GET['city']; ?>

这可以在页面内容中的任何位置使用,没有问题,但在记录集结果中,该记录集结果期望var就像在页面中一样呈现(而不是在记录集结果中),证明变量没有问题或创建方式。

要弄清楚,页面中有一些实例,其中$ city用作简单的回显值(静态段落)。但是问题出在RECORDSET值中,该值也包含变量,如以下示例(动态段落)所示。在页面内容中包含var的那些段落不会呈现,而在页面中设置的段落(不作为记录集内容返回)可以正常工作。

我尝试使用(记录集示例)设置数据库值:
Something about this <?php echo $city; ?> here. More text here etc etc 仅呈现:
Something about this here. More text here etc etc

然后我尝试删除<?php包装器,因为php已经在处理记录集值。结果如下所示: Something about $city here. More text here etc etc 呈现:
Something about $city here. More text here etc etc实际将var显示为字符串。

当在页面上显示变量$city时,如何在MySQL中返回文本记录?

恐怕答案可能需要在数据库存储的结果上使用PHP eval()函数来执行echo语句。但是我在eval()上阅读的所有内容都很少给出正确的答案。 https://www.php.net/manual/en/function.eval.php
也许有一种更安全的方法来使此变量呈现在记录集结果中?

1 个答案:

答案 0 :(得分:0)

能够在记录集结果中回显变量的解决方案是使用php eval()函数

eval('?>'.$row["content"].'<?php;');

虽然这可以正常工作,但是PHP文档页面上的警告涉及:
https://www.php.net/manual/en/function.eval.php