ThinkPHP之唯一建冲突数据自增
来源:互联网 发布:机器人编程指令 编辑:程序博客网 时间:2024/05/16 14:38
功能:统计当日登陆玩家数
要求:一名用户当日多次登陆只算一次
解析:
用户表新增字段loginTime int(10) not null
新增统计表:
CREATE TABLE `mnlm_nums` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `cname` varchar(10) NOT NULL DEFAULT '' COMMENT '统计名称year month day', `nums` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '统计数', `dates` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '统计日期', PRIMARY KEY (`id`), UNIQUE KEY `cname` (`cname`,`dates`)) ENGINE=InnoDB DEFAULT CHARSET=utf8
用户登陆 读取loginTime获得上次登陆时间戳
声明变量$day = strtotime(date('Y-m-d')) 获得当日零点时间戳
判断loginTime是否小于$day
如果小于则表示今天新登陆用户则字段nums自增1
一、 mysql直接写就是 insert....ON DUPLICATE KEY UPDATE `nums`=(nums+1)
二、由于用的是ThinkPhp框架,寻找手册是否有类似方法,手册没有详细描述,查看源码,主要设计两个文件:
1. thinkphp/library/db/driver.class.php insert()方法
2. thinkphp/library/db/driver/mysql.class.php parseDuplicate()方法
得出结论
add($data,array(),array('nums'=>array('exp','nums+1')));
最后更新用户的loginTime完成
0 0
- ThinkPHP之唯一建冲突数据自增
- Oracle自增字段实现之ThinkPHP
- MySQL_007_基础_列属性之 自增、唯一键
- SQLyog 使用笔记,自增主键数据冲突错误
- ThinkPHP之数据修改
- thinkphp 数据库字段自增自减
- ThinkPHP之数据信息添加
- ThinkPHP之六脉神剑(创建数据)
- thinkphp 学习之 CURD操作数据创建
- ThinkPHP之数据信息的查询
- ThinkPHP 3.2.3+ORACLE插入数据BUG修复及支持获取自增Id的上次记录
- 如何在MySQL的SQL语句中避免数据唯一性冲突
- Mysql 唯一索引冲突处理
- Mysql批量插入随机数据改进版_设置表主键为自增,免得主键冲突
- ThinkPHP与PHPExcel冲突解决方法
- 使用数据库自增特性生成全局唯一id
- MySQL添加/删除主键、外键、唯一键、索引、自增
- php 根据自增id创建唯一编号类
- Maven下载安装使用一条龙
- 开发:Mac 安装 Mysql数据库
- jQuery easyUI相关消息窗口
- 58. SaveVolley
- 通过python threading Thread理解多线程和单线程的运行机制
- ThinkPHP之唯一建冲突数据自增
- NSIS图形界面(使用nsiskin插件)进阶教程
- google迈向IoT的开端——推出Android Things操作系统
- 类似购物评价,点击五角星变色事件
- Java面试题大全(part_4)
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- PostgreSQL学习篇10.1 模式
- Ubuntu命令行启动Matlab
- ubuntu中安装systemstap缺少dbg文件