2013-07-25 278 views
1

因此,我对我的博客发表了一篇评论文章thingy,但似乎并未插入数据。 这里的形式:PHP没有将表格数据插入到数据库中

<form action='' method='post' name='postComment'> 
<label for='name'>Name:</label><br/><input type='text' id='name' name='name''/><br/> 
<label for='comment'>Comment:</label><br/><input type='text' id='comment' name='comment' /> 
<br/><input type='submit' value='Post' name='postComment'/></form></div> 

的形式在页面的顶部在同一页面上进行处理。我使用与博客文章相同的方式插入数据,所以我知道它是有效的。我还通过使用phpMyAdmin(显然去除占位符)

if(!empty($_POST['postComment'])) 
{ 
    $date = date("d/m/y g:i:A"); 
    $name = clean(mysqli_real_escape_string($db, $_POST['name'])); 
    $comment = clean(mysqli_real_escape_string($db, $_POST['comment'])); 
    if ($stmt = $db->prepare("INSERT INTO `comments` (`name`, `comment`, `entry`, `date`) values (?, ?, ?, ?)")) { 
     $stmt->bind_param('ssis', $name, $comment, $_GET['id'], $date); 
     $stmt->execute(); 
     $stmt->close(); 
    } 
} 

任何帮助,将不胜感激,被抓我的头在这一块,现在每天测试SQL。

+0

你会得到什么错误(如果有)? –

+0

表又是什么引擎,InnoDB或MyISAM? –

+0

你确定$ _GET ['id']在你完成一个页面重定向后的数据后仍然存在吗? – Lochemage

回答

0

解决了它,谢谢大家的帮助。出于某种原因,phpMyAdmin没有将ID设置为自动增量,即使我在创建表时将其设置为自动增量。一个简单的SQL查询解决了它。

ALTER TABLE comments MODIFY id int NOT NULL AUTO_INCREMENT; 
1

可能还需要清理数据,以便在周围输入引号。如果你看看你的查询,你可能会看到日期不像字符串,它应该是。

+1

此外,'$ _GET ['id']'被绑定为一个整数,而它实际上是一个包含整数的字符串。不确定如何工作。作为最后一件事,在绑定之前,绑定的字符串不需要是'mysqli_real_escape_string''d。 –

+0

只是将其更改为字符串 – Austen

-1

你的表单action =''是空白的,所以它不会去任何地方。

+0

这是PHP_SELF,但只是拿走了$ _GET ['id'] – Austen

+0

没有声明一个动作,它将永远不会在任何地方发布。使用POST,而不是GET。 – Kenzo

+0

由于'action'为空白,表单将进入同一页面。 –

相关问题