0

ユーザーから取得したデータをテーブルに入力しようとしているだけですが、何らかの理由でデータを挿入できませんが、正確にはテーブルの別の部分に対する同じクエリであり、それは完全にうまくいくようです。

たとえば、このクエリを実行しても機能しません。

$updateibtask2 = "UPDATE ibtask_task2_75beep SET 

    Trial1_tone_actual=  '$taskerror[0]', Trial2_tone_actual= '$taskerror[1]',  Trial3_tone_actual= '$taskerror[3]',

    Trial4_tone_actual=  '$taskerror[4]', Trial5_tone_actual= '$taskerror[5]',  Trial6_tone_actual= '$taskerror[6]', 

    Trial7_tone_actual=  '$taskerror[7]', ... WHERE user_id = '$memberid'";

ただし、このクエリを試すと、完全に正常に動作します。

$updateibtask2_estimate = "UPDATE ibtask_task2_75beep SET 

    Trial1_tone_estimate=  '$taskerror[0]', Trial2_tone_estimate= '$taskerror[1]',  Trial3_tone_estimate= '$taskerror[3]',

    Trial4_tone_estimate=  '$taskerror[4]', Trial5_tone_estimate= '$taskerror[5]',  Trial6_tone_estimate= '$taskerror[6]', 

    Trial7_tone_estimate=  '$taskerror[7]', ... WHERE user_id = '$memberid'";

私はどこが間違っているのだろうか?

また、これらのクエリを実行するために使用している PHP コードが役立つ場合は、次のとおりです。

 $task2 = array();
 $task2 = $_SESSION['task2'];

 $task2estimate = array();
 $task2estimate = $_SESSION['estimatedpress2'];

 $task2actual = array();
 $task2actual = $_SESSION['actualpress2'];

 addacutalerror_75($memberid, $task2actual);
 addestimatederror_75($memberid, $task2estimate);

また、データが存在するかどうかを確認するため$task2actualに、echo ..[0]、..[1].. などを実行し、配列にデータが存在しました。

更新しました

解決策を探していて同じ問題を抱えている人のために、私がやったことは次のとおりです。

function addacutalerror_75($memberid, $task2actual) {

$insertmember = "INSERT INTO ibtask_task2_75beep (user_id, Trial1_tone_actual,
    Trial2_tone_actual, Trial3_tone_actual, Trial13_tone_actual,
    Trial14_tone_actual, ..., Trial40_notone_actual) VALUES ('$memberid', '$task2actual[0]', '$task2actual[1]', '$task2actual[3]', '$task2actual[18]', '$task2actual[21]', '$task2actual[22]', '..., '$task2actual[24]', '$task2actual[29]', '$task2actual[33]','$task2actual[38]' )";

mysql_query($insertmember) or die(mysql_error());

}
4

1 に答える 1

3

ちなみに、UPDATEとは大きく異なりINSERTます。

UPDATE - テーブルの既存のレコードを変更します。
INSERT - テーブルに新しいレコードを追加します。

クエリは問題ありませんが、更新を行っています。しかし、レコードを更新するのではなく、レコードを挿入したいですか?レコードを挿入するときのクエリは次のようになります。

$updateibtask2 = "INSERT INTO ibtask_task2_75beep 
                     (Trial1_tone_actual, Trial2_tone_actual, 
                      Trial3_tone_actual,...) 
                  VALUES ('$taskerror[0]', '$taskerror[1]',...)";

あなたのクエリは脆弱ですSQL Injection。から保護するためにSQL injection、以下の記事をお読みください。

于 2012-10-28T02:26:49.600 に答える