只有一个字段提交到mySQL数据库

时间:2014-01-13 00:20:07

标签: php mysql forms

我正在尝试创建一个用户输入其名称和注释的表单,它将存储在mySQL数据库中,然后打印在下面(如基本注释板)。 我的评论是成功提交我的评论板并在下面打印出来,但名称不是。

这是我的PHP编码:

$comment = clean_string($db_server, $_POST['comment']);
 $name = clean_string($db_server, $_POST['name']); 
 if ($cokeboard != "") { 
 $query = "INSERT INTO cokeboard (name, comment) VALUES ('$comment', '$name')"; 
 mysqli_query($db_server, $query) or die("Insert failed: " . mysqli_error($db_server)); 
 $message = "Thanks for your comment!"; 
 }
//Print out existing comment 
$query = "SELECT * FROM cokeboard"; 
$result = mysqli_query($db_server, $query); 
if (!$result) die("Database access failed: " . mysqli_error($db_server)); 
while($row = mysqli_fetch_array($result)){ 
$str_comments .= "<h3>" . $row['comment'] . "</h3>" . "<h6>" . $row['commDate'] . "</h6>" . "<h6>" . $row['name'] . "</h6>"; 
} 
 mysqli_free_result($result); 

以下是用户将提交的表单:

<form id="frmStudentFees" action="coke.php" method="post">
 Name:<input type='name' name='name'><br />
  <textarea rows="5" cols="30" name="comment"></textarea></br>
  <input type="submit" id="submit" name="submit" value="Submit form" /> 
</form> 

然后打印输出:

<?php
echo $str_comments;
?>
请记住,我对代码很陌生。

非常感谢

3 个答案:

答案 0 :(得分:0)

试试这个:

 $comment = clean_string($db_server, $_POST['comment']);
 $name_ = clean_string($db_server, $_POST['name']); 
 if ($cokeboard != "") { 
 $query = "INSERT INTO cokeboard (name, comment) VALUES ('$name_','$comment')"; 
 mysqli_query($db_server, $query) or die("Insert failed: " . mysqli_error($db_server)); 
 $message = "Thanks for your comment!"; 
 }

答案 1 :(得分:0)

此行确实有效(as per W3.org)

Name:<input type='name' name='name'><br />
                  ^^^^

然而,许多人(包括我自己)喜欢使用text作为基于文本的表单元素的元素类型,具体取决于所使用的浏览器类型,在这种特殊情况下,它很可能是问题所在。

因此,请使用以下内容:

Name:<input type='text' name='name'><br />

然而,这是主要问题; 您在commentname中混淆了订单:

$query = "INSERT INTO cokeboard (name, comment) VALUES ('$comment', '$name')";
                                                          ^^^^^^^     ^^^^

应为:

$query = "INSERT INTO cokeboard (name, comment) VALUES ('$name', '$comment')";

或使用表格和列名称的反引号,这是一种首选方法:

$query = "INSERT INTO `cokeboard` (`name`, `comment`) VALUES ('$name', '$comment')";

插入顺序很重要。

答案 2 :(得分:0)

尝试echo $query,看看你得到了什么输出..