由于自动加快更新,我正在准备自己的功能。
我有那个代码:
$allowededitablefields = array('mail');
$userid = $_GET['uid'];
$query = 'UPDATE users SET ';
foreach ($_POST as $key => $value) {
if(!in_array($key,$allowededitablefields)) {
unset($_POST[$key]);
}
else {
$query .= $key.' = :'.$key.',';
}
}
$query = substr($query, 0, -1);
$query .= ' WHERE id='.$userid;
$statement = $this->_db->prepare($query);
foreach ($_POST as $key => $value) {
$statement->bindParam(':'.$key,$value);
}
$statement->execute();
如果在 $allowededitablefields 数组中,我只有一个值,它可以正常工作,但是如果我将一些值推送到数组中,例如 $allowededitablefields = array('mail','country',...); 表中的字段采用相同的值。