码迷,mamicode.com
首页 > 数据库 > 详细

onethink在mysql下不能新建编辑器类型字段

时间:2014-10-13 19:24:07      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:des   io   os   ar   sp   on   cti   代码   工作   

onethink在mysql下不能新建编辑器类型字段

clone最新的代码安装完毕,继承基础文档,新增detaildesc字段为编辑器类型,没有新建表。且sql语句有误

主要原因是  MYSQL5.x是不允许BLOB/TEXT类型的字段拥有默认值的,暂时修复代码为Admin/Controller/AttributeController.class.php

protected function updateField($field){
        //检查表是否存在
        $table_exist = $this->checkTableExist($field[‘model_id‘]);

        //获取原字段名
        $last_field = $this->getFieldById($field[‘id‘], ‘name‘);

        /*获取默认值
        1、  MYSQL5.x是不允许BLOB/TEXT类型的字段拥有默认值的
        2、  由于MYSQL是在‘strict mode’严格模式下工作的,如果改为非严格模式,上面的语句就可以执行成功 
        3、  MYSQL5.x在windows下是默认以‘strict mode’工作的,当执行上面的语句时,会给你一个错误或者警告信息
        */
        if(strpos(strtolower($field[‘field‘]), ‘text‘) >=0){
            $default = ‘‘;
        }else{
            $default = $field[‘value‘]!=‘‘ ? " DEFAULT ‘".$field[‘value‘] ."‘" : ‘‘;
        } 
        $sql = <<<sql
            ALTER TABLE `{$this->table_name}`
CHANGE COLUMN `{$last_field}` `{$field["name"]}`  {$field["field"]} {$default} COMMENT ‘{$field["title"]}‘;
sql;
        $res = M()->execute($sql);
        return $res !== false;
    }



onethink在mysql下不能新建编辑器类型字段

标签:des   io   os   ar   sp   on   cti   代码   工作   

原文地址:http://my.oschina.net/jingxing05/blog/330135

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!