我的数据库没有插入一些值

时间:2011-11-21 23:02:11

标签: php mysql sql insert

我有以下代码:

   $query = "INSERT INTO main_table (id, matric_no, session, semester, 
                                    course_name, test, exam,practical)
       VALUES (NULL, '$_POST[matric_no]', '$_SESSION[session]', 
              '$_SESSION[semester]', '$_SESSION[course_name]', '$_POST[test]',
              '$_POST[exam]', '$_POST[practical]')";

       mysql_query($query) or
       die (mysql_error());

然后我尝试了:

       echo "$_POST[semester]";
       echo "$_POST[course_name]" ;

他们回应了我的期待,但没有插入数据库..只有那两个。

感谢。

2 个答案:

答案 0 :(得分:2)

正如评论中指出的那样,问题是在原始问题中看不到的列类型不匹配。

但是,直接插入POST或其他值是一个非常糟糕的主意 - 始终在它们上运行mysql_real_escape_string()(或数据库库提供的任何卫生功能)。有关SQL注入的更多信息here

答案 1 :(得分:-1)

此代码应该会给您一个语法错误...

   echo "$_POST[semester]";
   echo "$_POST[course_name]" ;

试试这个

   echo "{$_POST['semester']}";
   echo "{$_POST['course_name']}" ;

或者这个:

   echo "xxx".$_POST['semester']."xxx";
   echo "xxx".$_POST['course_name']."xxx;

此处提供更多信息:

请注意$ _POST [xxx]注意正确的语法!阅读上面的文档!