为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕工程0101907 2021-12-03 14:39:49
我有一个有多个问题的 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"游戏.phprequire "database.php";    echo $vragen;  // string with hardcoded variables我希望让变量在 php 中工作。
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

是的,可以使用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代码。

最后,可能值得注意的是,根据evalPHP 手册,在从运行的 PHP 脚本中访问变量方面:

代码将在调用 eval() 的代码范围内执行。因此,在 eval() 调用中定义或更改的任何变量在它终止后都将保持可见。

您可以eval此处找到有关存储在 MySQL 中的 PHP 上下文中使用的关键字的其他示例。

但是,正如上述评论者正确指出的那样,由于超出您的问题范围的许多原因(是否可能),这是非常不鼓励的。但是,为什么你不应该这样做了一个有趣的讨论,在这里,如果你有兴趣。

有关更多信息,eval关键字的PHP手册页是这里


查看完整回答
反对 回复 2021-12-03
?
12345678_0001

TA贡献1802条经验 获得超5个赞

您可以通过将 C 代码编译到服务器中来在 MySQL 中编写自定义本机函数,并且您可以在 C 程序中调用外部进程,所以我想答案是肯定的。这回答了你的问题,但并没有解决你的问题。


无论如何,您都在使用 PHP 来检索这些字符串。您可以在获取它们后简单地操作它们:


$input = '{player1} buys 2 drinks for {player2}.';

$variables = [

    '{player1}' => 'Jim',

    '{player2}' => 'Joe',

];

$output = strtr($input, $variables);


查看完整回答
反对 回复 2021-12-03
  • 2 回答
  • 0 关注
  • 214 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号