мой БД не вставляет некоторые значения - PullRequest
0 голосов
/ 22 ноября 2011

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

   $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 ]

2 голосов
/ 22 ноября 2011

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

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

0 голосов
/ 22 ноября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...