CREATE TABLE IF NOT EXISTS `hd_test` (
`id` mediumint(8) unsigned NOT NULL auto_increment COMMENT '主键(自增长)',
`name` varchar(200) default '' COMMENT '名称',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='测试' AUTO_INCREMENT=1 PHP代码也很简单 M("Test")->getById(1);
$model = M("Test");
$model->name="测试";
$model->add();当数据库中没有ID为1的的记录时SHOW COLUMNS FROM `hd_test` [ RunTime:0.003417s ]
SELECT * FROM `hd_test` WHERE ( `id` = 1 ) LIMIT 1 [ RunTime:0.000918s ]
INSERT INTO `hd_test` (`name`) VALUES ('测试') [ RunTime:0.000463s ] 当数据库中存在了ID为1的记录时SHOW COLUMNS FROM `hd_test` [ RunTime:0.003307s ]
SELECT * FROM `hd_test` WHERE ( `id` = 1 ) LIMIT 1 [ RunTime:0.001279s ]
INSERT INTO `hd_test` (`id`,`name`) VALUES (1,'测试') [ RunTime:0.000324s ] 会自动把自增的字段ID带进去,导致添加失败。$pid=isset($_REQUEST["pid"])?$_REQUEST["pid"]+0:0;
if($pid<=0)$this->error('父类必须选择!');
if(!M("Test")->getById($pid))$this->error('父类不存在!');
$model = M("Test");
$model->name="测试";
$model->pid=$pid;
$model->add();代码如上。INSERT INTO `hd_test` (`id`,`name`,`pid`) VALUES (1,'测试',1)其实我要的是INSERT INTO `hd_test` (`name`,`pid`) VALUES ('测试',1)但前面的if(!M("Test")->getById($pid))$this->error('父类不存在!');这个校验父类是否存在的校验必须有。ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。