Meine Datenbank fügt einige Werte nicht ein

  • Ich habe die folgenden Codes:

        $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());
     

    Dann habe ich versucht:

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

    und sie erklärten, was ich erwartet hatte, aber nicht in die Datenbank eingefügt wurden. Nur diese beiden.

    Danke.

    22 November 2011
    Code Magician
2 answers
  • Wie in den Kommentaren darauf hingewiesen wurde, war das Problem ein nicht übereinstimmender Spaltentyp, der in der ursprünglichen Frage nicht sichtbar war.

    Es ist jedoch sehr schlecht Idee, POST oder andere Werte direkt einzufügen - führen Sie immer mysql_real_escape_string() (oder welche Sanitationsfunktion) aus Ihrer Datenbankbibliothek aus. Mehr zu SQL-Injektionen hier .

    22 November 2011
    Pekka 웃
  • Dieser Code sollte einen Syntaxfehler enthalten ...

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

    Versuchen Sie dies

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

    oder dieses:

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

    Weitere Informationen hier:

    Beachten Sie, dass $ _POST [xxx] die richtige Syntax ist !!! Lesen Sie oben die Dokumente!

    22 November 2011
    Pekka 웃