2013-03-26 91 views
1

嗨,我不明白为什么这段代码没有将数据从html文本插入到我的实际数据库中。我正在尝试仅使用First_Name对其进行采样以开始。尝试将表单信息发送到数据库PHP/MYSQL

不管怎么说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

欢迎来到Stack Overflow!请不要使用'mysql_ *'函数来编写新的代码。他们不再被维护,社区已经开始[弃用流程](http://news.php.net/php.internals/53799)。看到[红色框](http://uk.php.net/manual/en/function.mysql-connect.php)?相反,您应该了解[准备好的陈述](http://en.wikipedia.org/wiki/Prepared_statement)并使用[PDO](http://php.net/pdo)或[MySQLi](http:// php.net/mysqli)。如果你选择PDO [这里是一个很好的教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 – War10ck 2013-03-26 12:35:13

回答

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转义符。你打开注射。

+0

帮助现在配置数据库收集数据。谢谢 ! – user2210046 2013-03-26 15:44:24

0
$res=mysql_query("INSERT INTO Persons (First_Name, Second_Name) VALUES ('$_POST[First_Name]', '$_POST[Second_Name]')"); 
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

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

$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]')"); 
1

你只有经过一个值

$水库=请求mysql_query(“INSERT INTO人(FIRST_NAME先生SECOND_NAME)VALUES('$ _ POST [名字] “)“);

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

试试这个:

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

1

试试这个:

它添加到PHP代码:

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

,然后将查询更改为:

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