2013-03-26 101 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."')"); 
相關問題