1

嗨,我不明白为什么这段代码没有将 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]')");

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

4

6 回答 6

1

尝试这个:

将此添加到 php 代码中:

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

然后将查询更改为:

    $res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('".$firstname."', '".$lastname."')");
于 2013-03-26T12:38:42.480 回答
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]')");
于 2013-03-26T12:34:32.973 回答
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]')");
于 2013-03-26T12:35:15.280 回答
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]')");

于 2013-03-26T12:36:01.940 回答
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 转义。您可以进行注射。

于 2013-03-26T12:41:44.153 回答
0
$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Second_Name]')");
于 2013-03-26T12:34:27.693 回答