thinkphp 通过alter添加字段后无法插入问题?
$sql = "ALTER TABLE `$table` ADD `$info` VARCHAR(50) NOT NULL default '';";
M()->execute($sql);通过sql语句向指定数据库增加字段后,由于thinkphp字段缓存默认是开启,所以插入数据的时候会不更新新增字段。
解决方法1,关闭字段缓存。
// 'DB_FIELDS_CACHE'=>false,
解决方法2,在模型类里面手动增加数据表字段的名称。
class MyModel extends Model{public function addField($field){
array_push($this->field, $field);
}
}
结合上述sql语句,最终代码为
$model = new MyModel();
$sql = "ALTER TABLE `$table` ADD `$info` VARCHAR(50) NOT NULL default '';";
$model->execute($sql);
$model->addField($info);
经测试,可以插入数据了。
本文介绍了使用ThinkPHP框架时,通过SQL语句添加字段后无法正常插入数据的问题及解决办法。提供了两种解决方案:关闭字段缓存或手动更新模型类中的字段列表。
861

被折叠的 条评论
为什么被折叠?



