public function InsertUpdate(JobQueueEntity $oJobQueueEntity) { $sEndTime = ', job_end_time = NULL'; $sStatus = $oJobQueueEntity->getStatus(); if ($sStatus === NULL or $sStatus === 'started') { $sStatus = 'started'; } if ($sStatus == 'completed') { $sEndTime = ', job_end_time = NOW()'; } $sSql = 'INSERT INTO ' . $this->sTableName . ' ( id , user_id , job_status , job_start_time , job_end_time , pid ) VALUES ( ? , ? , "started" , NOW() , NULL , ? ) ON DUPLICATE KEY UPDATE id = id , job_status = ? ' . $sEndTime . ' , pid = ?'; $aBindArray = array($oJobQueueEntity->getId(), $oJobQueueEntity->getUserId(), $oJobQueueEntity->getPid(), $sStatus, $oJobQueueEntity->getPid()); $this->Execute($sSql, $aBindArray); $oJobQueueId = $this->oAdapter->getDriver()->getLastGeneratedValue(); $oJobQueueEntity->setId($oJobQueueId); return $oJobQueueEntity; }