尝试将表单信息发送到数据库PHP / MYSQL

时间:2013-03-26 12:31:40

标签: php mysql sql database

您好我不明白为什么这段代码没有将html文本字段中的数据插入到我的实际数据库中。我试图使用First_Name开始对其进行采样。

无论如何HTML代码如下:

<form action="Proform.php" name="Myform" method="post">

        <input type ="hidden" value="1" name="check_submit" />
        Please Enter First Name: <input type ="text" name="First_Name" /> <br />
        Please Enter Second Name: <input type ="text" name="Second_Name" /><br />
        Please Enter Email Address: <input type ="text" name="Email_Address" /><br />
        Please Enter A Password: <input type="password" name="Password" /><br />
        <input type ="submit" name"Submit" /><br />

    </form>

php和MYSQL如下:

 <?php

    $dbname='ecig';
    $dbhost='localhost';
    $dbpass='password';
    $dbuser='eciguser';



    $dbhandle = mysql_connect($dbhost, $dbuser, $dbpass)
      or die("Unable to connect to MySQL");
    echo "Connected to MySQL<br>";


    $selected = mysql_select_db("ecig",$dbhandle)
      or die("Could not select examples");



    $res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]')");

    if (array_key_exists ('check_submit', $_POST )) 

    echo "Your Name is : {$_POST['First_Name']}<br />";
    echo "Your Second Name is : {$_POST['Second_Name']}<br />";
    echo "Your Email Address is : {$_POST['Email_Address']}<br />";
    echo "Your Password Is : {$_POST['Password']}<br />";

    ?>

它必须与这行代码有关,但我无法发现它。你们有没有发现出了什么问题?

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]')");

非常感谢任何帮助。谢谢。

6 个答案:

答案 0 :(得分:1)

您告诉查询您要提供first_name和last_name但是您只提供first_name:

$res = mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]')");

尝试:

$res = mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Lirst_Name]')");

答案 1 :(得分:1)

您的插入查询不正确。您必须提供与列数相同的值。

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]')");

应该是:

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Last_Name]')");

答案 2 :(得分:1)

您只在

中传递一个值

$ res = mysql_query(“INSERT INTO Persons(First_Name,Second_Name)VALUES('$ _POST [First_Name]')”);

,并在插入语句中插入2个值,名字和第二个名称。

试试这个:

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Second_Name]')");

答案 3 :(得分:1)

试试这个:

将其添加到php代码中:

$firstname             =    $_POST['First_Name'];
$secondname        =    $_POST['Second_Name'];

然后将查询更改为:

    $res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('".$firstname."', '".$lastname."')");

答案 4 :(得分:1)

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]')");

我可以看到这个查询有些问题。首先,您说您只想从名字开始,因此您只需要插入第一个名称列:

Persons (First_Name  ) VALUES
                    ^

然后,看,你想确保你的变量填写字符串。你想使用:

('{$_POST['First_Name']}')
  ^       ^          ^ ^

还要考虑错误测试,因为这很可能是MySQL语法错误。你可以添加

if (!$res) {
    die('Invalid query: ' . mysql_error());
}

注意:不要使用MySQL_ *,因为自PHP 5.5起已弃用。使用MySQLi_ *或PDO。此外,您应该使用预准备语句和SQL转义。你是开放注射的。

答案 5 :(得分:0)

$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Second_Name]')");