Php 只有一个字段提交到mySQL数据库
我试图创建一个表单,用户在其中输入他们的姓名和评论,它将存储在我的mySQL数据库中,然后打印在下面(就像一个基本评论板)。 我的评论正在成功提交我的评论板并在下面打印出来,但名称不是 这是我的php代码: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
$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')";