標籤: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’strict 模式下工作的,如果改為非strict 模式,上面的語句就可以執行成功 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下不能建立編輯器類型欄位