业务需要每月新增一张表,以应对大量的数据情况,以下为thinkphp动态创建数据表结构源码
$table = 'activelog'. date('Ym');
$sql = "CREATE TABLE IF NOT EXISTS `$table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`system` tinyint(4) NOT NULL COMMENT 'xxxxxx',
`pfid` smallint(4) NOT NULL,
`uid` int(11) NOT NULL,
.....
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='活跃统计' AUTO_INCREMENT=1 ;";
M('', '', 'DB_CONFIG_ACTIVE')->execute($sql);//注意,这里创建表的话,第一个参数不要设置,不然会检测表信息,然表不存在,导致报错。
我们来一探究竟:
thinkphp3.2会默认开启数据表字段检测,在Model.class.php
查看源码
// 是否自动检测数据表字段信息
protected $autoCheckFields = true;
在db方法中,1409行, 有这样的代码:
if(!empty($this->name) && $this->autoCheckFields) $this->_checkTableInfo();
$this->name 在构造方法中设置,也就是我们M('','','XXXX') 第一个参数。 参数3为数据库连接信息
今天在写业务逻辑的时候碰到的,顺便写下来,希望能够帮到大家。
您也可以参考我的个人网站: http://www.isbala.com/article/270.html
AD:真正免费,域名+虚机+企业邮箱=0元

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Linux new version
SublimeText3 Linux latest version

Dreamweaver CS6
Visual web development tools
