【问题标题】:posting select option to mysql将选择选项发布到 mysql
【发布时间】:2012-06-23 15:21:58
【问题描述】:

这是我的代码:

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,现在它可以工作了 :)

【问题讨论】:

  • “它不起作用” 你能说得更具体些吗?您收到什么错误消息或不良行为?

标签: php mysql select tags option


【解决方案1】:

像这样改变你的数据库,然后执行你的插入查询,我希望它对你有用

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

【讨论】:

  • 我想知道type这个词是不是没有保留,以后用它作为表名会让人头疼。
【解决方案2】:

这一行肯定会引发错误,因为单引号(用于 POST 数组名称)嵌套在更多单引号中。 要么逃避那些,要么像这样写:

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

另外,为了避免很多麻烦和未知错误,您不应该使用保留字作为变量,例如:

text
type

当我很久以前刚开始使用 PHP 时,我有几个小时甚至几天的头痛,因为我有一个名为:USER 的 mySql 字段(一个保留的 mySql 单词,但这可以通过将它包含在 ` 反向引号符号中来解决)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多