困扰我多时的问题,特来请教!
我通过下面的方法保存表单(由于项目不固定,因此用了循环):
print_r($_POST);//我先把表单打印出来,是正常的
for($i= 1;$i<count($_POST);++$i)
{
$str = "Temp_Work_".$i;
if(($$str!="")&&($count<$i))//当前表达为临时工作,且工作项目不为空,则保存该工作
{
$Work_Str .= $str;
$Work_Str .= "=".$$str."\t".$i;
$sql = "select count(*) as aaa from rq_data where Prcs_ID =".$PRCS_ID;
$row = mysql_fetch_row(mysql_query($sql));
$count = $row[0]+1;
echo $count;//为调试程序,增加的输出
$val = $$str;
$work = "Temp_Deal_".$i;
$Temp_Over = "Temp_Over_".$i;
$sql = "insert into rq_data(Prcs_ID,ID,Projects,Deal,Is_Over,Belong_User) values(".$PRCS_ID.",".$count.",'".$val."','".$$work."',1,'".$LOGIN_USER_ID."')";
mysql_unbuffered_query($sql);
echo $sql;
}//临时工作处理完毕
}
现在我的问题是:为什么有时候会出现重复插入数据的情况,并且在这种重复插入数据的情况下,打印的表单是正常的,打印的输出标志也只有一次,但就是插入了两条记录
然后我在进入for循环前进行通过sql查询是否已经存在将要插入的记录,发现数据库中已经存在将要插入这条记录,并且这种我没有预计的插入是不打印我设置的调试标志(我在执行插入前已经清空了数据库)
我想问的是:为什么会出现这种重复插入数据的情况,是不是php优化编译处理的结果,或者在php.ini文件中进行了什么设置,我要怎么才能正常插入数据(保证只插入一次)