2011-11-21 13 views
0

を挿入されていません。 私のデシベルは、私は以下のコードを持っているいくつかの値に

 echo "$_POST[semester]"; 
     echo "$_POST[course_name]" ; 
と彼らは私が期待しますが、データベースに挿入されなかったものをエコー..:

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

それから私は試してみましたそれらの2つだけ。

ありがとうございました。

+0

どのようなタイプの列ですか?また、POST値を直接挿入しないでください。 http://php.net/manual/en/security.database.sql-injection.php –

+0

列を正確に意味していますか?を参照してください。挿入された最初のセッション値。 –

+0

データベースフィールドはどのタイプですか? –

答えて

2

コメントで指摘したように、問題は、元の質問には見えませんでしたカラム型の不一致でした。

しかし、POSTやその他の値を直接挿入することは非常に悪いことです。常にmysql_real_escape_string()(またはデータベースライブラリが提供する衛生機能を実行してください)を実行してください。 SQLインジェクションの詳細here

+0

なぜコミュニティのwikiの質問よりもずっといいだからdownvoteを削除しますか?あなたは質問 –

+0

に答えました@マーティン私はそれに答えるしかなかったので、私は最初に質問を完全に削除することを提案しました。 –

+0

ああ、私は「なぜこれをコミュニティーのwikiの回答としてマークしましたか」を意味しています。 –

-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]は正しい構文に注意してください。上記のドキュメントを読んでください!

+2

本当ではありません。これは、文字列内の配列を扱うための適切な構文です。 –

+0

いいえ**それは**ではありません。お返事ありがとうございます – Peter

+0

Peter - あなたは 'echo' $ _POST [semester] ";'を試しましたか?できます。それは問題ではない(例2及び3は、はるかに良いスタイル、疑いもなくですが) –

関連する問題