有人能指出我在正确的方向/网站在这里动态更新的MySQL/PHP的字段名/列名
是否有PHP的方式如何,你可以从表单比较字段名称动态更新特定表和数据库中的column_name。
如
输入名称= “EMAIL_ADDRESS”
和
数据库列名是EMAIL_ADDRESS
我发现的东西,但不是在我看来,如此灵活.. 。
有人能指出我在正确的方向/网站在这里动态更新的MySQL/PHP的字段名/列名
是否有PHP的方式如何,你可以从表单比较字段名称动态更新特定表和数据库中的column_name。
如
输入名称= “EMAIL_ADDRESS”
和
数据库列名是EMAIL_ADDRESS
我发现的东西,但不是在我看来,如此灵活.. 。
我有类似的地方,它非常稳定。
所有你需要做的是从你的表得到 coloumns,并 产生的输入字段 动态 然后,当它贴后背,破灭的一切,为字符串。检查收到的色彩名称是否与您表格中的名称匹配,并将值也分解。 Add_slashes并转义任何引号或其他可能的sql注入字符。
以下代码是我用于MASSIVE项目的一个。
$postvars = $_POST;
$q = "replace into `".$opertable."`
(
`".(implode('`,`',(remove__v(array_keys($postvars)))))."`)
values
(
'".(implode('\',\'',$postvars))."')";
remove__v删除一些验证技术和使用功能提交以下
function removeObj($array) {
foreach($array as $key => $value) {
if (substr_count($key,'obj__')) unset($array[$key]);
}
return $array;
}
按钮等我所有的输入按钮被命名为OBJ __ *
希望你的想法。
它应该是可能的只是为了让他们从POST超全球的关键,但考虑所涉及的安全风险。请记住,表单是由用户提交的,他可以轻松创建一个名为rights
的假输入字段,并赋予其管理员权限!
如果你仍然想去,解决方案很简单。循环发布帖子,获取密钥和值并将其附加到SQL查询;因此:
$sql = "UPDATE user SET ";
foreach($_POST as $key => $value)
$sql .= $key . " = " . $value . ',';
$sql = substr($sql,0,-1); //Remove the last comma
此功能仅适用于管理员可以登录的网站的后端部分... – WilfredMifsud 2011-05-23 13:02:29
然后继续使用它,这是一个采取捷径以节省宝贵时间的完美示例! 只要确定你知道风险。 – TJHeuvel 2011-05-23 13:04:29
是的,这是考虑到了。 我还将包含表名称作为隐藏的输入类型加入到这个函数中..所以它更加灵活和动态 感谢您的时间:D – WilfredMifsud 2011-05-23 13:07:12
它似乎不安全。这样做的理由是什么? – k102 2011-05-23 13:01:17