Heim > php教程 > php手册 > thinkphp动态创建数据表结构

thinkphp动态创建数据表结构

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 11:34:12
Original
1507 Leute haben es durchsucht

业务需要每月新增一张表,以应对大量的数据情况,以下为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元

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage