我在$_POST
传递了一个表单,其中每个字段的名称与数据库中的数据相对应
$_POST['test']; (has a value of 1)
$_POST['prod']; (has a value of 2)
test
和prod
都是数据库中的唯一名称。有没有办法可以动态抓取$_POST
变量?例如(某些代码不起作用)
$getServerIDs = $link->query("SELECT * FROM servers");
while($row = $getServerIDs->fetch_assoc()){
$serverName = $row['name'];
$newDisplayID = $_POST['$sName'];
$updateDisplayID = "UPDATE servers SET displayID = $newDisplayID WHERE name = $servername";
$runQuery = $link->query($updateDisplayID);
$_POST['$sName']
是问题的代码行。什么是解决这个问题的最佳方法?
答案 0 :(得分:1)
不要使用引号或使用双引号。
另外请注意,您使用的是高度不安全的代码。谷歌sql注入
答案 1 :(得分:1)
问题在于使用单引号的行$newDisplayID = $_POST['$sName'];
,当你将变量放在单引号中时,它不会被php使用$_POST[$sName];
或$_POST["$sName"];
<强>被修改强>
答案 2 :(得分:0)
您可以使用array_keys()
将所有密钥和数组作为$_POST
。
$keys = array_keys( $_POST );
但请注意,您的用户可以在其提交中添加任何密钥。所以你无论如何都应该过滤和消毒这个输入!
然后你就可以使用这个$keys
数组来输出。