Мой db не ВСТАВЛЯЕТ некоторые значения

У меня есть следующие коды:

$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 ответа

Как отмечалось в комментариях, проблема была несоответствием типа столбца, которое не было видно в исходном вопросе.

Однако очень mysql_real_escape_string() вставить POST или другие значения напрямую - всегда запускайте mysql_real_escape_string() (или любую mysql_real_escape_string() функцию санитарии, предоставляемую вашей библиотекой базы данных). Подробнее о SQL-инъекциях здесь.


Этот код должен дать вам синтаксическую ошибку...

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] отмечает правильный синтаксис !!! Прочтите документы выше!

licensed under cc by-sa 3.0 with attribution.