
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可以打印出我填写的内容,但是并没有提交到数据库,什么原因呢? 展开
<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可以打印出我填写的内容,但是并没有提交到数据库,什么原因呢? 展开
展开全部
因为你的插入语句是错误的,字符串字段的值没加引号。
你的程序拼接出来的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');
你的程序拼接出来的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');
展开全部
$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语句执行成功了
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 "执行失败";}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql语句不对呗。打印出来sql语句,拿出来执行看看报什么错试试这样的
我貌似看到了中文的双引号,还有单引号未加。。。。诸如此类的问题你检查下你得sql
我貌似看到了中文的双引号,还有单引号未加。。。。诸如此类的问题你检查下你得sql
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你SQL语句根本就没执行成功
$sql="insert into news_list (id,title,author,content,time) VALUES (NULL, "{$title}" , "{$author}", "{$content}", "{$time}");
insert 会返回一个新增的ID,你的SQL拼接好像出错了
$sql="insert into news_list (id,title,author,content,time) VALUES (NULL, "{$title}" , "{$author}", "{$content}", "{$time}");
insert 会返回一个新增的ID,你的SQL拼接好像出错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把mysql_query注释掉,当然插不进数据库。
echo的是你表单提交过去的内容,当然能打印。
请采纳。
echo的是你表单提交过去的内容,当然能打印。
请采纳。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询