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我做了回声 ..[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

顺便说一句,UPDATEINSERT.

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 回答