0

我有一个用户名/密码<form>,如果为假,将显示无效用户,如果为真,将显示一个<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但是当我刷新到索引页面时,提交的数据没有保存/记录到数据库中。

4

3 回答 3

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

于 2013-05-04T19:09:30.753 回答
0

只有一个建议。不要<form>在里面使用标签<table>。在某些情况下会产生问题。尝试使用以下格式
<form><table>...</table> </form>

于 2013-05-04T19:32:19.870 回答
0

您上面的代码似乎有一些问题。请参阅此链接以获取有关连接和显示 SQL 相关问题的帮助

您的 SQL 无效,您没有将“$cont”插入到表中,看起来您正试图将其插入到数据库名称“data”中。查看此链接以获取有关 SQL INSERT 的更多信息

还有一些关于你上面的东西:

于 2013-05-04T19:14:45.423 回答