Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在CakePHP中保存枚举类型列中的数据_Mysql_Enums_Cakephp 2.0 - Fatal编程技术网

Mysql 如何在CakePHP中保存枚举类型列中的数据

Mysql 如何在CakePHP中保存枚举类型列中的数据,mysql,enums,cakephp-2.0,Mysql,Enums,Cakephp 2.0,可能重复: 我的表格中有一个复选框。该复选框在数据库中具有枚举类型列。如果选中该复选框,我需要在该列中保存1或0 我使用CakePHP的save函数来保存所有表单值。当我选中该复选框时,该列将更新为1,但如果我未选中该复选框,然后按下提交按钮,则该列将更新为空值 如何使用CakePHP中的复选框保存枚举类型值?如果您没有定义任何内容,枚举将使用Null作为列的默认值。更新表定义并将“0”设置为默认值。它将解决您的问题。或者您将列类型更改为tinyint(0/1)(例如在MySQL中): 或者,

可能重复:

我的表格中有一个复选框。该复选框在数据库中具有枚举类型列。如果选中该复选框,我需要在该列中保存1或0

我使用CakePHP的save函数来保存所有表单值。当我选中该复选框时,该列将更新为1,但如果我未选中该复选框,然后按下提交按钮,则该列将更新为空值


如何使用CakePHP中的复选框保存枚举类型值?

如果您没有定义任何内容,枚举将使用Null作为列的默认值。更新表定义并将“0”设置为默认值。它将解决您的问题。

或者您将列类型更改为tinyint(0/1)(例如在MySQL中):

或者,验证该值是否通过(或选中),例如:

ALTER TABLE users CHANGE COLUMN active active tinyint not null default 0;
if($this->request->data['User']['active'] == null) {
    $this->request->data['User']['active'] = 0;
}

ENUM('0','1')
不是很好的数据库设计--
TINYINT
更适合布尔值。无论如何,CakePHP中没有对ENUM的直接支持。