将选择选项发布到mysql

时间:2012-06-23 15:21:59

标签: php mysql select tags option

这是我的代码:

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 :(得分:0)

改变你的数据库,然后执行你的插入查询我希望它能为你工作

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

答案 1 :(得分: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字,但这可以通过将它包装在`后向引号中来修复)