2014-12-04 100 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');現在一切工作正常。

感謝您的回覆和時間。