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

Php 只有一个字段提交到mySQL数据库,php,mysql,forms,Php,Mysql,Forms,我试图创建一个表单,用户在其中输入他们的姓名和评论,它将存储在我的mySQL数据库中,然后打印在下面(就像一个基本评论板)。 我的评论正在成功提交我的评论板并在下面打印出来,但名称不是 这是我的php代码: $comment = clean_string($db_server, $_POST['comment']); $name = clean_string($db_server, $_POST['name']); if ($cokeboard != "") { $query = "I

我试图创建一个表单,用户在其中输入他们的姓名和评论,它将存储在我的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); 
$comment=clean_string($db_server,$_POST['comment']);
$name=clean_字符串($db_server,$_POST['name']);
如果($cokeboard!=“”){
$query=“插入焦炭塔(名称、注释)值(“$comment”、“$name”)”;
mysqli_查询($db_服务器,$query)或die(“插入失败:”.mysqli_错误($db_服务器));
$message=“谢谢您的评论!”;
}
//打印现有评论
$query=“从焦炭塔中选择*”;
$result=mysqli\u query($db\u server,$query);
如果(!$result)死亡(“数据库访问失败:.mysqli_错误($db_服务器));
而($row=mysqli_fetch_数组($result)){
$str_comments.=''.$row['commDate'].''.''.$row['name'.'';
} 
mysqli_免费_结果($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;
?>

请记住,我对代码还很陌生

非常感谢

试试这个:

 $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!"; 
 }
这一行确实有效:

但这是主要问题您混淆了
注释
名称
中的顺序:

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

插入顺序很重要。

尝试
echo$query
并查看您得到的输出

我会穿上我的精神衣服,谢谢。
$query=“INSERT-INTO-cokeboard(name,comment)值(“$comment”,“$name”)”操作顺序是关键。您将在名称中插入注释,并在注释中插入名称。另外,您还应该看看为MySQLI准备的语句。如果使用
prepared
stations,也不需要使用
clean_string
。同时将输入类型名称更改为text。我没有看到此详细信息。弗雷德是对的。输入中的类型必须是文本。插入后,放置一个回音以验证值是否正确。@phsaires请解释一下好吗?(我现在感觉好笨!!)$comment=clean_string($db_server,$_POST['comment'])$name_uu=clean_字符串($db_server,$_POST['name'])//如果字符串没有问题,请看这里。。。。。。。。。。echo$name_u389;“.”$comment.“
”;如果($cokeboard!=“”){$query=“插入cokeboard(name,comment)”值($name,“$comment”)”;“mysqli_查询($db_服务器,$query)或死亡($INSERT失败:“.mysqli_错误($db_服务器));$message=“谢谢您的评论!”}您的
clean_string()
函数可能在捉弄您。您应该尝试使用
mysqli\u real\u escape\u string
来测试它@user3169325还可以检查您的列设置。
$query = "INSERT INTO cokeboard (name, comment) VALUES ('$name', '$comment')";
$query = "INSERT INTO `cokeboard` (`name`, `comment`) VALUES ('$name', '$comment')";