我有一个用户名/密码<form>
,如果为false,则会显示无效用户,如果为true则会显示<textarea>
,用户可以发表评论然后提交。
基本上,下面的代码是then
语句如果登录正确那么..
session_start();
$_SESSION['name'] = $name;
echo "success, hi $name";
echo "<table>
<tr><td>insert comment here</td><td>poster</td>
<tr><td><form action='post.php' method='post'><textarea name='content'></textarea>
</td>
<td> $name</td>
</tr>
<input type='submit' name='submit' value='submit'>
</form>
</table>";
与上面的<form>
相关,我创建了 post.php ,它将解析来自<form>
的所有数据并将其插入数据库。
<?php
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("data") or die (mysql_error());
?>
<?php
if (isset($_POST['submit'])) {
$cont = $_POST['content']; //data coming from index.php <form>
mysql_query("insert into data ('content') values ('$cont')");
}
else {
}
?>
是什么让我感到困惑,是否没有出现错误。
当我在<textarea>
上输入内容然后点击提交时,它会转到 localhost / post.php 但是当我刷新到索引页面时,提交的数据没有保存/记录到数据库中
答案 0 :(得分:0)
由于您在mysql_query("insert into data ('content') values ('$cont')");
因此,您应在查询末尾添加or die(mysql_error());
,并在查询中大写SELECT
VALUES
..
喜欢mysql_query("INSERT INTO data (content) VALUES ("'.$cont."'));
所以,你的代码应归结为。
<?php
mysql_connect("localhost","root","") or die (mysql_error());
mysql_select_db("data") or die (mysql_error());
?>
<?php
if(isset($_POST['submit'])) {
$cont = $_POST['content']; //data coming from index.php <form>
$query = mysql_query("INSERT INTO data ('content')
values ('".$cont."')") or die(mysql_error());
if($query){
echo 'data inserted';
}else {
echo 'data not inserted';
}
}
else {
}
?>
请记住,我不鼓励您使用mysql_
,因为它很弱并且已被弃用,并且您的代码非常容易受到SQL注入攻击。而是学习PDO
答案 1 :(得分:0)
上面的代码看起来有些问题。有关连接和显示SQL相关问题的帮助,请参阅此link
您的SQL无效,您没有将“$ cont”插入表中,看起来您正试图将其插入数据库名称“data”。有关SQL INSERT
的更多信息,请查看此link还有一些关于你上面所做的事情:
答案 2 :(得分:0)
只有一个建议。不要在<form>
中使用<table>
标记。它在某些情况下会产生问题。
尝试使用以下格式
<form><table>...</table> </form>