чтобы понятнее было чего я хочу добиться:
$config = array(
...
'user_params' => array(
'frags' => 1,
'deaths' => 2,
'wins' => 3,
'fails' => 4,
'xp' => 5,
'money' => 6,
'golds' => 7
),
'user_params_invert' => array(
1 => 'frags',
2 => 'deaths',
3 => 'wins',
4 => 'fails',
5 => 'xp',
6 => 'money',
7 => 'golds'
),
);
public function user_updateParameter($id, $parameterName, $value)
{
$param = $this->config['user_params'][$parameterName];
if (isset($param)) {
$sth = $this->dbh->prepare('INSERT INTO user_params (user, parameter, value) VALUES (:user, :parameter, :value1) ON DUPLICATE KEY UPDATE value = value + :value2');
$sth->execute(array(
':user' => intval($id),
':parameter' => $param,
':value1' => intval($value),
':value2' => intval($value)
));
}
}
public function user_getParameters($id)
{
$sth = $this->dbh->prepare('SELECT parameter, value FROM user_params WHERE user = ?');
$sth->execute(array(intval($id)));
$params = $sth->fetchAll(PDO::FETCH_NUM);
$nameValue = array();
$pi = &$this->config['user_params_invert'];
foreach ($params as $keyValue) {
$nameValue[$pi[$keyValue[0]]] = $keyValue[1];
}
return $nameValue;
}