这是我的代码:
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,现在它可以工作:)
答案 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字,但这可以通过将它包装在`后向引号中来修复)