html表单输入不保存在MySQL中

时间:2013-05-04 19:02:29

标签: php mysql

我有一个用户名/密码<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 但是当我刷新到索引页面时,提交的数据没有保存/记录到数据库中

3 个答案:

答案 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>