初学者,求大神看下一段简单的向数据库插入数据的PHP代码

<?phpinclude("conn.php");if(!empty($_POST['sub'])){$title=$_POST['title'];$con=$_POST... <?php
include("conn.php");

if(!empty($_POST['sub']))
{

$title=$_POST['title'];
$con=$_POST['con'];

$sql1="INSERT INTO 'news' ('id','title','dates','contents') VALUES ('3', '$title', '2015-12-11', '$con')";

$query=mysql_query($sql1);
if($query)
{
echo "chenggong";
}
else
{
echo "shibai";
}

}

?>

<form action="add1.php" method="post">
标题<input type="text" name="title"><br>
内容<textarea rows="5" cols="50" name="con"></textarea><br>
<input type="submit" name="sub" value="发表">
</form>

一直输出的是shibai,数据库中没插入进去
$title=$_POST['title'];
$con=$_POST['con']; 都是能收到值了的
展开
 我来答
匿名用户
推荐于2016-11-20
展开全部
$query=mysql_query($sql1) or die(mysql_error());

运行下, 再把错误信息发上来!

你这种错误, 绝大部分是出现在sql语句的错误, 初学者很容易犯这个错误!

一般是sql语句语法错误或者与数据库结构不对应!

打个比方说, 有一个字段, 名称是:abc

字段类型是int, 那么这个字段必须写入数字, 如:3, 但不能写入二进制、字符串文本等

比如写入 '3' 那就会出错!

而如果这个字段类型是:VARCHAR

那么这个字段可以写入数字和字符串文本, 但也不能写入二进制数据!

其他还有很多, 比如字段不允许为空并且没有默认值, 那么就必须写入值, 否则也不行

还有字段属性, 字段长度是20的话, 写入21个字符也会出错

字段属性唯一的话, 整个表不能存在相同字段相同值的情况等等!

追问
找到问题了,我把'news' ('id','title','dates','contents')  这句的单引号全部去掉了,就成功了
追答

这个错误意思是你的sql语句语法错误

最大的错误在表名称和字段名称你加了单引号

表名称和字段名称, 要不你就什么符号都不要加

要加也是tab键上方的那个键, 而非单引号如下图所示

顺便说明下, 加这个键上的符号, 唯一的作用是怕一些表名称或者字段名称与mysql数据库关键字重名造成冲突, 如果没有占用数据库的保留关键字, 那这个符号加不加都没什么差别

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式