php - 关于MySql的Enum的问题
天蓬老师
天蓬老师 2017-04-11 09:50:14
[PHP讨论组]
 ` sex ENUM('1','0','-1')  NOT NULL DEFAULT '-1' ` 

本来是填写男女和保密的,但是使用单引号还是双引号都是无法创建成功这个表,报错的条目就是这条。我改成这样 0 1 -1 就可以使用,

这边想问一下是否可以设置成

sex ENUM('男','女','保密') NOT NULL DEFAULT '保密'

就是直接数据库保存的数据默认选项Enum是中文的 如果可以,要怎么写呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(5)
PHPz

完全没有问题,楼主检查一下当前表的字符集,设定为utf8

设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

设置表tb_name默认编码为utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

另外您在建表时细心点看看是不是被什么东西混进来了哦


mysql> ALTER TABLE content ADD sex ENUM('男','女','保密') NOT NULL DEFAULT '保密';
Query OK, 0 rows affected (0.14 sec)
Records: 0  Duplicates: 0  Warnings: 0


mysql> desc content;
+----------------------+----------------------------+------+-----+---------+----------------+
| Field                | Type                       | Null | Key | Default | Extra          |
+----------------------+----------------------------+------+-----+---------+----------------+
| id                   | int(11) unsigned           | NO   | PRI | NULL    | auto_increment |
| depth                | int(11)                    | YES  |     | NULL    |                |
| url                  | varchar(200)               | YES  |     | NULL    |                |
| article_title        | varchar(20)                | YES  |     | NULL    |                |
| article_headimg      | varchar(150)               | YES  |     | NULL    |                |
| article_author       | varchar(20)                | YES  |     | NULL    |                |
| article_content      | text                       | YES  |     | NULL    |                |
| article_publish_time | int(10)                    | YES  |     | NULL    |                |
| sex                  | enum('男','女','保密')      | NO   |     | 保密    |                |
+----------------------+----------------------------+------+-----+---------+----------------+
迷茫

你这种写法并没有什么问题,你要看下你的字符集设置

阿神

应该没什么问题,看一下字符集,不要乱码就好了,但是存的话还是建议用数字

迷茫

完全没有问题,enum设置好以后,跟字符串处理基本一样

PHP中文网

建议直接用tinyint

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号