php 为什么数据可以输出 但是数据库中没有记录??

我的源代码是这样的:<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"... 我的源代码是这样的:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>添加新闻</title>
</head>
<body>
<h3>添加新闻</h3>
<form name="news" method="post" action="addnews.php">
标题:<input name="title" type="text"></br>
作者:<input name="author" type="text"></br>
时间:<input name="time" type="text"></br>
内容:<textarea name="content"></textarea></br>
<input type="submit" name="submit" value="提交">
<input type="reset" name="reset" value="重写">
</form>
<?php
$title=$_POST['title'];
$author=$_POST['author'];
$time=date('Y-m-d');
$content=$_POST['content'];

$conn=mysql_connect("localhost","root","");
if(!$conn){
die("false".mysql_errno());
}
//设置访问数据库的编码方式
mysql_query("set names utf8",$conn) or die(mysql_errno());
//选择连接的数据库
mysql_select_db("grasp",$conn )or die(mysql_errno());
//通过输入的用户名来获取数据库的密码,然后再和输入的密码比对
$sql="insert into news_list (id,title,author,content,time) VALUES (NULL, ".$title." , ".$author.", ".$content.", ".$time.")";
//$res=mysql_query($sql);
echo "$title " , "$author ", "$content ", "$time ";
?>
</body>
</html>

echo可以打印出我填写的内容,但是并没有提交到数据库,什么原因呢?
展开
 我来答
songcitc
2013-12-30 · TA获得超过397个赞
知道小有建树答主
回答量:170
采纳率:0%
帮助的人:207万
展开全部
因为你的插入语句是错误的,字符串字段的值没加引号。

你的程序拼接出来的SQL语句是 insert into news_list (id,title,author,content,time) VALUES (NULL, 123 ,123, 123, 2013-12-30);

实际上要能够执行,语句应该是 insert into news_list (id,title,author,content,time) VALUES (NULL, '123' ,'123', '123', '2013-12-30');
百度网友5bbf6c6a84
2013-12-30
知道答主
回答量:11
采纳率:0%
帮助的人:8.5万
展开全部
$sql="insert into news_list (id,title,author,content,time) VALUES ('',$title,$author,$content,$time)";sql语句可以直接这样写,然后把"//$res=mysql_query($sql);"前面的注释去了,因为这句是sql语句执行的必要条件,没有它sql语句是没用的.然后你可以用
if($res){
echo "执行成功";
}
else{
echo "执行失败";
}
进行判断是否sql语句执行成功了
更多追问追答
追问

  输出是没问题的,关键就是没有提交到数据啊

追答
提交到数据库的关键是执行sql语句,而执行sql语句的关键是 $res=mysql_query($sql);
所以首先把这句话的前面的注释去掉,
你可以把最上面的
$sql="insert into news_list (id,title,author,content,time) VALUES (NULL, ".$title." , ".$author.", ".$content.", ".$time.")";//$res=mysql_query($sql);替换成
$sql="insert into news_list (id,title,author,content,time) VALUES ('',$title,$author,$content,$time)";
$res=mysql_query($sql) ;
试试;如果不成功再在这两句后面加上echo $sql;把输出的结果复制到数据库里面执行以下试试;看看错了没有,如果错了,就是sql语句有问题.
下面的是执行成功后的操作,看你对php了解不是太深,留着为以后用吧!if($res){ echo "执行成功";}else{ echo "执行失败";}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
njumwx
2013-12-30 · TA获得超过327个赞
知道小有建树答主
回答量:868
采纳率:0%
帮助的人:450万
展开全部
sql语句不对呗。打印出来sql语句,拿出来执行看看报什么错试试这样的
我貌似看到了中文的双引号,还有单引号未加。。。。诸如此类的问题你检查下你得sql
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
莘赡05V
2013-12-30 · 知道合伙人软件行家
莘赡05V
知道合伙人软件行家
采纳数:1397 获赞数:3710
毕业安徽理工大学

向TA提问 私信TA
展开全部
你SQL语句根本就没执行成功
$sql="insert into news_list (id,title,author,content,time) VALUES (NULL, "{$title}" , "{$author}", "{$content}", "{$time}");
insert 会返回一个新增的ID,你的SQL拼接好像出错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HUC越前
2013-12-30 · TA获得超过263个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:193万
展开全部
你把mysql_query注释掉,当然插不进数据库。
echo的是你表单提交过去的内容,当然能打印。

请采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式