我有一个 mysql 数据库,有多个问题。 有些问题包含 php 变量。 当我尝试回显 mysql 数据时,变量不起作用。
我尝试过 eval,但大多数人说它不安全并且对我不起作用。
数据库.php
$sql = "SELECT * FROM vragen ORDER BY RAND()";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$vragen = print_r($row[vraag],true);
mysql数据
$player1[$rnd1]." take 2 drinks"
游戏.php
require "database.php";
echo $vragen; // string with hardcoded variables
我希望变量能够在 php 中工作。
最佳答案
是的,可以使用eval
关键词。例如(使用示例中的变量):
# This would interpret everything stored in this variable as PHP code.
eval($vragen);
请记住 eval
关键字不返回值,因此如果您的目标是 echo
您不需要的输出 echo
当使用eval
时。例如:
eval($vragen);
将输出$vragen
的内容直接进入输出流(浏览器),但是
$return_value = eval($vragen);
只会检查是否 eval
能不能跑。任意return;
或return false
将结束eval
代码。
最后,可能值得注意的是,在从 PHP 脚本访问变量方面,eval
根据 PHP 手册运行:
The code will be executed in the scope of the code calling eval(). Thus any variables defined or changed in the eval() call will remain visible after it terminates.
您可以找到有关 eval
的其他示例在 MySQL 中存储的 PHP 上下文中使用的关键字 here .
但是,正如上述评论者正确指出的那样,由于超出您问题范围的许多原因,强烈建议不要这样做(是否可能)。然而,关于为什么你不应该这样做有一个有趣的讨论 here ,如果您有兴趣。
有关eval
的更多信息PHP 手册页的关键字是 here
关于php - 是否可以从 mysql 数据库运行 php 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57612117/