2014-12-04 53 views
1

我想知道如何在mysqli查询中插入'enum'类型。我的意思是,如果字段类型为字符串,我执行这样的查询:在'MYSQLi'中插入'ENUM'

INSERT INTO 'table'(field1,field2) VALUES ('?,?'); $stmt->bind_param('ss',$value1,$value2); $stmt->execute();

一切正常,但如果我改变“场2”,以枚举类型:

CREATE TABLE IF NOT EXISTS table ( field1 varchar(20) NOT NULL, field2 ENUM('Administrator', 'User', 'Guest');

然后这个查询插入第一个字段,但第二个字段是空的。我已经检查过第二个字段的值是ENUM类型定义的之一。

谢谢。

回答

0

变化

INSERT INTO 'table'(field1,field2) VALUES ('?,?'); 

INSERT INTO 'table'(field1,field2) VALUES (?,?); 
2

您已经定义的选项ENUM

此外,您正在插入值。

至于你在你的情况下,输入预先定义的值:

('Administrator', 'User', 'Guest') 

您可以插入ENUM场就好像它是一个字符串,它不会产生问题。

如果输入的值不是定义的值,例如Administrator,...数据库将导致错误。

+0

你是对的,枚举类型插入像一个字符串值。感谢您的帮助。 – Charles 2014-12-04 09:50:07

-1

我发现这个问题,这里有云:

我节省了特殊字符在枚举类型(重音)

field2 ENUM('Administrator', 'Usér', 'Guest');

,当我查询试图插入Usér失败。所以我改变了表格定义为:

field2 ENUM('Administrator', 'Usér', 'Guest');现在一切工作正常。

感谢您的回复和时间。