2011-04-22 75 views
0
$body = $_POST['post']; 
$submit = $_POST['submit']; 
$date = date("Y-m-d"); 
require('php/connect.php'); 

if($submit) 
{ 

$query = mysql_query("INSERT INTO news (`id`, `body`, `date`) VALUES (NULL, '".$body."', '".$date."')"); 
header("Location: index.php"); 
} 

我不明白为什么这不起作用,我直接从PHP写了一个查询,我的管理员在写了一行之前手动模拟自己,它仍然不工作,有人可以吗?MYSQL INSERT问题

+0

什么是您的架构是什么样子? – 2011-04-22 15:18:27

+0

id | body |日期 – 2011-04-22 15:20:11

+1

注释掉你的'header(“Location:index.php”); '和'追加或死亡(mysql_error());'在您的查询代码末尾,会告诉你什么地方出了错 – afarazit 2011-04-22 15:21:45

回答

2

你一定要使用mysql_real_escape_string

随着mysql_error可以打印出一条错误消息,逃避你的输入值,但你需要的连接标识符作为参数。

1

我只是建议处理MySQL错误

$query = mysql_query("INSERT INTO news (`id`, `body`, `date`) VALUES (NULL, '".$body."', '".$date."')") 
or trigger_error(mysql_error()); 

如果id是主键不能为空

你应该使用mysql_real_escape_string功能逃跑用户输入。

,会发生什么,如果我在你的$body输入放"that's it "价值,你的查询将失败。

+0

它仍然不会发布。 – 2011-04-22 15:23:51

+0

添加'mysql_error'后收到了什么错误? – 2011-04-22 15:28:44

+0

在看到任何错误之前,他需要注释掉header() – afarazit 2011-04-22 15:39:24

0

注释掉你的标题(“Location:index.php”);并追加或死亡(mysql_error());在查询代码的最后,它会告诉你出了什么问题。在将其插入数据库之前,您还应该使用“mysql_real_escape_string”用户输入。

$body = mysql_real_escape_string($_POST['post']); 
$submit = $_POST['submit']; 
$date = date("Y-m-d"); 
require('php/connect.php'); 

if($submit) 
{ 

$query = mysql_query("INSERT INTO news (`id`, `body`, `date`) VALUES (NULL, '$body', '$date')") or die(mysql_error()); 
//header("Location: index.php"); 
}