我有以下代码:
$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]" ;
他们回应了我的期待,但没有插入数据库..只有那两个。
感谢。
答案 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]注意正确的语法!阅读上面的文档!