2015-07-10 09:56:56 3013次浏览 1条回答 0 悬赏 20 金钱

运行下面的代码,本地windows环境不会出现存入多条重复数据的情况,正式linux环境经常出现存入多条重复数据,有人知道原因吗?

public function actionTest(){
    set_time_limit(0);
    $timeStamp = strtotime('2015-04-27');
    //日期等于今天日期跳出循环
    while (date('Y-m-d', $timeStamp) != date('Y-m-d', time())) {
        $date = date('Y-m-d', $timeStamp);
        //todo 数据存入数据库的操作;
        $timeStamp = strtotime('+1 day', $timeStamp);
    }
}

最佳答案

  • koko 发布于 2015-07-10 11:06 举报

    可能是多次调用了函数,具体的要自己去调试才知道哪里出了问题。
    如果仅需要运行一次,尝试加个互斥变量。

    3 条回复
    回复于 2015-07-10 12:38 回复

    函数只运行了一次,互斥变量怎么加,没接触过互斥变量的概念

    回复于 2015-07-10 13:44 回复

    只运行一次是你想要的结果,现在实际情况是函数可能被多次运行了,或者,插入数据的操作被多次运行了。

    用一个变量或一个方法去判断是否已经插入过数据,具体的自己去写

    if(是否已经插入){ 
    return;
    } else { 
    插入数据;
    }
    
    回复于 2015-07-10 14:58 回复

    哦 谢谢

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
陈江南
总监

陈江南

注册时间:2015-04-07
最后登录:2024-03-15
在线时长:22小时52分
  • 粉丝8
  • 金钱2951
  • 威望30
  • 积分3471

热门问题