求教高手mysql insert命令无法执行,select update命令运行都正常

<?php
session_start();
include ("conn.php");
include_once("function.php");
seuser();

if($_POST['subjectadd']=="" || $_POST['test_time']==""){msg('添加科目和考试时间都不能为空!','subjectadd.php'); exit();}

$checksub=mysql_query("select TestClass from test where TestClass='$_POST[subjectadd]'");

if(mysql_num_rows($checksub)>0){msg('该科目已存在,不能重复添加!','subjectadd.php');exit();}

if(!checksint($_POST['test_time'])){msg('考试时长只能为正整数!!','subjectadd.php');exit();}

$addsubject=mysql_query("insert into test (TestClass,TestTime,addtime) value ('$_POST[subjectadd]','$_POST[test_time]',now())");

if($addsubject){
msg('添加成功','subjectadd.php');
}else {
msg('操作失败','subjectadd.php');
};
?>

时间是以字符串形式存储的!
建议把你的sql语句echo出来直接拷贝到mysql中运行。。你会发现报错信息!
这种问题就得这么解决!每次出问题 都echo你的sql语句!这样会省不少时间!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-21
$addsubject=mysql_query("insert into test (TestClass,TestTime,addtime) value ('$_POST[subjectadd]','$_POST[test_time]',now())");
上面这段代码里value ('$_POST[subjectadd]','$_POST[test_time]',now()) 中的值应该用双引号吧?
改成:value ("$_POST[subjectadd]","$_POST[test_time]",now()) 试试看!!!追问

出现语法错误 Parse error: syntax error, unexpected T_VARIABLE in

追答

这个错误是程序书写有问题,可能是某个字符的全角和半角问题。你仔细查一下Insertt语句那行代码,最好的解决方法:
把输入法切换成英文半角模式,然后手动把下面的代码输入一遍:
$addsubject=mysql_query("insert into test (TestClass,TestTime,addtime) value ('$_POST[subjectadd]','$_POST[test_time]',now())");

本回答被网友采纳
第2个回答  2013-05-21
插入语句的关键字,用 values追问

更换关键字以后还是不行

追答

你的$_POST[subjectadd],改成 “+$_POST[subjectadd]+” 试试。我对mysql的语法不太熟悉呢,不过后台传参数不是像你那样直接放在''里面的

追问

感谢帮助 问题解决了 inser输出错误结果的原因是我插入的数据值不完整在设计test表单的时候还有一项id 我没有设定为自动递增

相似回答