gpt4 book ai didi

mysql - 更新或插入值

转载 作者:行者123 更新时间:2023-11-29 13:56:28 25 4
gpt4 key购买 nike

我创建了一个表:

$this->db->query('CREATE TABLE IF NOT EXISTS `'.DB_PREFIX.'ct_forum_settings` (
`admin_online` int(1) NOT NULL default \'0\'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
');

当用户登录时,如果该行不存在,则插入或更新,如果用户已注销,则插入或更新值 1 或 0。

登录

@mysql_query ("REPLACE INTO " . DB_PREFIX . "ct_forum_settings (admin_online) VALUES(1) ON DUPLICATE KEY UPDATE admin_online='1'");

退出

@mysql_query ("REPLACE INTO " . DB_PREFIX . "ct_forum_settings (admin_online) VALUES(0) ON DUPLICATE KEY UPDATE admin_online='0'");

我唯一的问题是我尝试插入和替换,但它们只是不断创建 1 和 0 的行,我只需要更新该行(如果它不存在)。

请问有什么想法吗?

最佳答案

对于REPLACEON DUPLICATE UPDATE,您需要为表提供一个唯一键(通常主键就是您需要的)。
一旦你有了这个,你将为用户使用相同的值(例如,调用字段id并使其自动增量),它将起作用

$this->db->query('CREATE TABLE IF NOT EXISTS `'.DB_PREFIX.'ct_forum_settings` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`admin_online` int(1) NOT NULL default \'0\'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
');

如果你只有一个条目,则不需要自动增量,但是你必须手动设置id。

关于mysql - 更新或插入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15786633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com