2012-04-28 6 views
1

私はPHPとMySQLに少し慣れていることを前に説明します。セッション変数をMySQLデータベースに書き込もうとしています。 HTMLフォームを使用して最初のレコードを送信できたが、これを正しく実行したと思ったが、追加レコードを送信できなかった。データベースには1つのレコードしか表示されず、新しいレコードを送信しようとするとエラーは発生しませんが、データベースには表示されません。PHP/MySQL - 1レコードが挿入された後に値を送信できません

私のフォームを複数のページにわたって実施されているので、私は私のPHPコードが含まれます:

<?php 

    $con = mysql_connect("localhost","user","mypassword"); 
    if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

    mysql_select_db("mydatabase", $con); 

    mysql_query(" 
    INSERT INTO imaging (os,MAC,Model,AntiVirus,Browser,Email,Connectivity,Sound,Ports) 
    VALUES ('".$_SESSION['imaging2']."','".$_SESSION['imaging3']."','".$_SESSION['imaging4']."','".$_SESSION['antivirus']."','".$_SESSION['browser']."','".$_SESSION['email']."','".$_SESSION['connectivity']."','".$_SESSION['sound']."','".$_SESSION['ports']."') 
    OR die("Could not update: ".mysql_error()); 

    mysql_close($con); 

?> 

私のテーブル名は次のように私のデータベースの撮像

私のコラムは以下のとおりです。

id - My primary key field set to Auto_Increment, type is int(11) 
os - text 
MAC - text 
Model - text 
AntiVirus - text 
Browser - text 
Email - text 
Connectivity - text 
Sound - text 
Ports - text 

少なくとも1回は働いたので、これは主キーフィールドのコード解釈の問題であることが明らかです。

いつでも大変助かります。そしてねえ、誰が知っている?たぶん、私の目を交差させずにもう一度クリアするのに十分長い間、コンピュータから離れていくだけの問題かもしれません。 :)

私のPHPコードのIDフィールドへの参照がありませんか?

+1

do a print_r($ _ SESSION);挿入する前に実際にそこに値があることを確認してください。また、ちょうどfyi:すべてのデータベースフィールドを小文字にしておき、それらの入力を消毒する必要があります。 – wesside

答えて

2

これが本当にあなたのコードの場合は、mysql_queryへの呼び出しに問題があります。構文の強調表示からわかるように、間違っています。あなたが最後に余分な")が必要になります。

mysql_query(" 
    INSERT INTO imaging (os,MAC,Model,AntiVirus,Browser,Email,Connectivity,Sound,Ports) 
    VALUES ('".$_SESSION['imaging2']."','".$_SESSION['imaging3']."','".$_SESSION['imaging4']."','".$_SESSION['antivirus']."','".$_SESSION['browser']."','".$_SESSION['email']."','".$_SESSION['connectivity']."','".$_SESSION['sound']."','".$_SESSION['ports']."') 
") or die("Could not update: ".mysql_error()); 

ところで、このコードはSQL Injectionに対して脆弱です。注意してください!

+0

私はそれが誤字だと思う。 –

+0

もしかしたら...私はこの答えを削除します。 – Mischa

+0

私は彼が正しいと思います...実際のSQL構文は正しいです。私は数回試して、それを働かせました。インサートイメージング (MAC、モデル、ウイルス対策、ブラウザ、電子メール、接続性、サウンド、ポート) VALUES( 'V'、 'b'、 'c'、 'd'、 'e'、 'f' 'g'、 'h'、 'i') – GDP

関連する問題