$ _POST表单无法创建记录

时间:2013-08-15 23:00:19

标签: php mysql forms

我正在处理一个简单的PHP表单,我遇到了一个奇怪的问题。它发生在我当地的MAMP环境和托管网站上。此脚本的目的是根据通过以下表单提交的数据将记录存储到表中。

<?php
    include("dbconnect.php");
    if(isset($_POST['submit']){
        $firstName = $_POST['firstName'];
        $SQLString = "INSERT INTO name_table (first_name) VALUES($firstName)";
        mysql_query($SQLString);
    } else {
        //Debugging script
        $mypostdata = file("php://input");
        print "<pre>"; 
        var_dump($_POST);
        var_dump($mypostdata);
        print "</pre>";
    }
?>

<form name="myForm" action="<?php $_SERVER['PHP_SELF']?>" method="POST">
    <label for="firstName">First Name:</label>
    <input type="text" name="firstName" value="Bob" />
    <input type="submit" name="submit" value="Finish">
</form>

$_POST上使用var_dump输出:

array(2) {
  ["firstName"]=>
  string(3) "Bob"
  ["submit"]=>
  string(6) "Finish"
}
$mypostdata = file("php://input");上的

var_dump导致:

array(9){
    "name=Bob&submit=Finish"
}

当我提交表单时,表格中没有创建记录。

修改 为清楚起见,我最初认为$_POST['myForm']名称出现的错误为NULL,但评论和答案已经清除了。

3 个答案:

答案 0 :(得分:1)

http://www.w3.org/TR/html401/interact/forms.html#successful-controls

表单本身未列为“成功控制”(见17.2.1),因此不应提交其名称。

答案 1 :(得分:0)

如果first_name是varchar,那么它需要在MySQL查询中用单引号括起来。 E.g:

"INSERT INTO name_table (first_name) VALUES('$firstName')";

答案 2 :(得分:0)

变化     $ SQLString =“INSERT INTO name_table(first_name)VALUES($ firstName)”;至     $ SQLString =“INSERT INTO name_table(first_name)VALUES(”。$ firstName。“)”;

如果不起作用,则通过写入error_reporting(E_ALL)来显示页面错误;和ini_set(“display_errors”,1);

继续发布结果