php - 是否可以从 mysql 数据库运行 php 代码?

标签 php mysql

我有一个 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/

相关文章:

php - 将变量保存到php文件

mysql - SQL_BIG_SELECTS 错误

mysql - MongoDB 复杂的按功能选择计数组

php - 返回 "self"作为 PHP trait 中函数的返回类型

PHP memcache::addServer, 权重

javascript - 两种表单 - 一个提交按钮?

php - 当数据库中存在特殊字符时,Ajax不返回结果集

mysql - 隐藏查询中的重复数据或不需要的行

php - 回显两个表的结果

php - 不使用 mysqli 处理 MySQL 事务