2017-06-20 49 views
-3

我無法獲得輸入字段以將數據發佈到mySQL表中。當我提交表單時,它輸入一個字段 - 我知道這是因爲在mySQL表中創建了一個具有新ID的空行。我不能爲我的生活弄清楚爲什麼輸入字段不會發布!我的數據庫連接並檢查了我的mySQL表以確保列名匹配。HTML表單不會將輸入發佈到mySQL DB中

HTML:

<!DOCTYPE html> 
<html> 
<head> 
    <title>PHP Site</title> 
</head> 
<body> 

<form action="demo.php" method="post"> 
    <p>First Name: <input type="text" name"fname"></p> 
    <input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

PHP:

<?php 
include ('db_connect.php'); 

// FORM NAMES 
$fname = $_POST['fname']; 

$sql = "INSERT INTO demo (firstName) VALUES ('$fname')"; 

if (!mysqli_query($conn,$sql)) { 
    echo "Error, Not Inserted"; 
} 
else { 
    echo "Inserted Successfully"; 
} 

mysqli_close($conn); 

?> 
+1

投票結束,因爲這個問題是由一個問題,不能再生產或**簡單的印刷錯誤**造成的。雖然類似的問題可能在這裏討論,但這個問題的解決方式不太可能有助於未來的讀者。這通常可以通過識別並密切檢查在發佈之前重現問題所需的最短程序來避免。 –

回答

-1

你犯了一個錯字,而只是寫name"fname"而不是name="fname"。糾正這應該通過您的輸入正確POST。

此外,您可能想看看parameterised queries對於現實世界的應用,以防止對MySQL的注入:

$stmt = $conn->prepare("INSERT INTO demo (firstName) VALUES (?)"); 
$stmt->bind_param("s", $fname); 
$stmt->execute(); 

希望這有助於! :)

+0

哈哈哈哦,我的!非常感謝!我正在絞盡腦汁。你應該得到最大的餅乾!謝謝!! –

+1

請您避免回答**代碼和教程要求**,**不清楚**,**過分寬泛**,**錯誤**,**基於意見**,**重複**, **非計劃相關**和所有**異題**問題。回答不適當的問題會導致網站更難以找到合適的結果**並且最糟糕的是,進一步激發這些問題。投票關閉它,而不是幫助SO,並教育它的用戶正確使用它。 –

+0

考慮到這個問題是一個印刷的問題,我補充說我的答案是提到原始代碼易受注入,並提供新的代碼來解決上述問題。另外,我相信原來的問題可能會幫助有類似問題的人,因爲沒有太多關於空白數據庫插入原因的文檔。順便說一句,我覺得很諷刺的是,你在「它」這個詞中使用了不正確的語法,因爲它立即進行「教育」;) –