PHP 将 vars 发布到 var 名称可以使用 PDO 吗?

标签 php mysql pdo http-post sql-injection

这样做有什么问题吗?我到处看了看,这似乎不是很常见的事情?有没有我不知道的内置函数?我使用 PDO 作为输入,所以我认为这没问题。

感谢您的帮助!!

foreach($_POST as $post => $var){
    ${$post} =  $var;
}

最佳答案

警告

As @Gumbo stated, this is, in no way, what you want to do. You should avoid doing anything like this with super globals in any sense. You're better off controlling each aspect as best as possible and assigning the variables properly, as best practice permits. i.e.

$a = 'derp';

你正在做的叫做Variable Variable并内置于 PHP 中。它实质上允许您动态创建在当前范围内使用的变量。

获取以下内容的 $_POST 数组:

Array (
    [a] => 'derp'
)

现在使用您当前的代码,您将动态创建和分配一个变量:

foreach($_POST as $post => $var){
    ${$post} =  $var;
}

反过来,允许您访问所述变量作为键:

echo $a; // would echo out derp

根据个人经验,这并不总是必要的,您可能会遇到的一个问题是覆盖已经设置的变量,进而产生不需要的/无法解释的输出。


您最好阅读这些答案,以便更广泛地了解您当前正在做的事情:

关于PHP 将 vars 发布到 var 名称可以使用 PDO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33642750/

相关文章:

php - 在 laravel 5.3 中按查询分组

php - 如何运行 php 脚本以根据某些特定参数更新 mysql 数据库列?

php - PDO 准备语句,正确使用?

php - PHP Sqlite和PDO插入

java - 在多线程应用程序中使用多个语句对象

php - 如何在插入前检查两个条件?

javascript - PHP/JS/SQL - 单击图像时提醒查询结果并不总是有效

javascript - 使用 jquery、javascript、wordpress 更改分页数

javascript - 如何将隐藏信息发送到打印机进行打印

mysql - 选择 MAX 或 Order By Limit 1