0

自動更新を急いでいるため、独自の機能を準備しています。

私はそのコードを持っています:

$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',...); テーブル内のフィールドは同じ値を取ります。

4

1 に答える 1