MySQL PHP, Insert/Update

Правильный пример с использованием регистров и лучшего объяснения был бы лучше. Я предполагаю, что вы хотите переназначить одно имя регистра в другое. Предложение:

class Register {
public:
  enum class UserName {
    REG_IO0,
    REG_MEM1
  };
  enum class CPUName {
    REG_INT0,
    REG_INT1
  };
  void setMapping(UserName from, CPUName to); // store the mapping
  CPUName getMapping(UserName name) const; // retrieve the mapping
private:
  std::map<UserName, CPUName> m_registerMap;
};

Если вы хотите, вы можете реализовать методы get / set для регистров в этом классе, если вы храните индексы / адреса регистров. Используйте шаблоны или перегрузите их для разных типов данных.

5
задан RichieHindle 9 May 2009 в 22:35
поделиться

2 ответа

Объявите кортеж (зона, дата) как уникальный в вашем операторе CREATE. Это заставит INSERT ... ON DUPLICATE UPDATE работать должным образом:

CREATE TABLE `stats` (
  `id` int(11) NOT NULL auto_increment,
  `zone` varchar(100) default NULL,
  `date` date default NULL,
  `hits` int(100) default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE (`zone`, `date`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

INSERT INTO stats (zone, date, hits) values ('zone1', 'date1', 1) ON DUPLICATE KEY UPDATE hits = hits + 1;
7
ответ дан 14 December 2019 в 04:47
поделиться
$result = mysql_query("SELECT id FROM stats WHERE zone=$zone AND date=$today LIMIT 1");
if(mysql_num_rows($result)) {
    $id = mysql_result($result,0);
    mysql_query("UPDATE stats SET hits=hits+1 WHERE id=$id");
} else {
    mysql_query("INSERT INTO stats (zone, date, hits) VALUES ($zone, $today, 1)");
}

Что-то вроде этого, если я правильно вас истолковал ... это совершенно непроверено. Вы можете выяснить, что это за переменные.

1
ответ дан 14 December 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: