2017-06-20 47 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

考虑到这个问题是一个印刷的问题,我补充说我的答案是提到原始代码易受注入,并提供新的代码来解决上述问题。另外,我相信原来的问题可能会帮助有类似问题的人,因为没有太多关于空白数据库插入原因的文档。顺便说一句,我觉得很讽刺的是,你在“它”这个词中使用了不正确的语法,因为它立即进行“教育”;) –