2012-06-23 59 views
0

這是我的代碼:張貼選擇選項到mysql

mysql_query("INSERT INTO jokes (headline, text, type) VALUES ('{$_POST['headline']}','{$_POST['text']}', '{$_POST['type']}')") or die(mysql_error()); 

我要發佈一個選擇選項,如

<select name="type"> 
<option value="regular">regular joke</option> 
<option value="other">other</option> 
</select> 

這是我的理論,但它不工作(它不出現在數據庫,我有一個枚舉字段與常規和其他)。任何幫助?

編輯:沒關係,我改變了枚舉爲varchar和現在的作品:)

+2

「它不工作」你能更加詳細一些?你得到什麼錯誤信息或不良行爲? –

回答

0

改變你的數據庫是這樣的,然後執行你的插入查詢,我希望它爲你工作

alter table `database_name`.`jokes` change `type` `type` enum('regular','other') NULL ; 
+0

我不知道'type'這個單詞是不是保留,並且稍後會導致頭痛,以此作爲表名。 – johan

0

這行肯定會引發錯誤,因爲您的單引號(對於POST數組名稱)嵌套在更多單引號內。 無論是逃生者或寫出來,如:

mysql_query("INSERT INTO jokes (headline, text, type) VALUES ('" . $_POST['headline']. "','" . $_POST['text'] . "', '" . $_POST['type'] . "')") or die(mysql_error()); 

同時,爲了避免許多麻煩和未知錯誤的,你不應該使用保留字作爲變量一樣:

text 
type 

當我剛開始用PHP一很久以前,我有幾個小時,如果沒有頭痛的日子,因爲我有一個mySql字段名爲:USER(一個保留的mySql單詞,但這可以通過將其包含在反向引號中解決)