您好我不明白为什么这段代码没有将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]')");
非常感谢任何帮助。谢谢。
答案 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]')");