php - 用数字表示文本 MySQL

标签 php mysql

我正在构建一个调查,其中参与者使用 html 表单输入详细信息。

例如:

What gender are you?    Male | Female 

可以使用单选按钮选择男性/女性选项。

但是,我想将答案作为 INT 值存储在我的数据库中,男性为 0,女性为 1。我该如何编写表示该内容的查询?

我有一个粗略的想法,看起来像这样,但似乎行不通:

$__g = Array('male' => '0', 'female' => '1');

另外,如何将值插入数据库?我有这个,但不确定它是否有效(因为我无法正确表示代表部分)

$sql = "INSERT INTO `onlinesurvey` 
(gender) VALUES ('".$__g[$_POST['gender']]."');

非常感谢您的帮助 =)

最佳答案

MySQL ENUM数据类型是这类东西的最佳选择。

CREATE TABLE survey (
    gender ENUM('Male', 'Female', 'Hemaphrodite')
);

INSERT INTO survey VALUES ('Female'); // will get index 1
INSERT INTO survey VALUES ('Hemaphrodite'); // will get index 2
INSERT INTO survey VALUES ('Male'); // will get index 0

关于php - 用数字表示文本 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2046031/

相关文章:

mysql - SQL 连接重复结果

php - MySql:从组中选择第一行,在两个表之间使用 INNER JOIN

mysql - 如何根据聚合函数的结果更新属性

php - 我如何将我的 Android 设备(不是模拟器)连接到 wamp 服务器?

java - 错误代码 : 1215 Cannot add foreign key constraint

php - 基于多个变量和条件构建动态 MySQL 查询

php - "\n"收不到 OUTLOOK 邮件

将 .CSV 文件转换为 .XML 的 PHP 脚本

javascript - json_encode php 5.5 vs 5.3 与 js 配合不佳

php - 如何从mysql获取值到下拉列表?