Ejemplo n.º 1
0
 /**
  * Record a visit in the database
  * 
  * @param string $slotname
  * @param string $timestamp
  * @return void
  * @access protected
  * @since 9/22/08
  */
 protected function _recordPastVisit($slotname, $timestamp)
 {
     $dbc = Services::getService('DatabaseManager');
     // First try running an update query, since most will be updates
     $query = new UpdateQuery();
     $query->setTable('segue_accesslog');
     $query->addValue('tstamp', $timestamp);
     $query->addWhereEqual('agent_id', $this->_getCurrentAgentId());
     $query->addWhereEqual('fk_slotname', $slotname);
     $query->addWhereLessThan('tstamp', $timestamp);
     $result = $dbc->query($query, IMPORTER_CONNECTION);
     // If no rows were updated, insert a new one for this user/slot
     if (!$result->getNumberOfRows()) {
         try {
             $query = new InsertQuery();
             $query->setTable('segue_accesslog');
             $query->addValue('tstamp', $timestamp);
             $query->addValue('agent_id', $this->_getCurrentAgentId());
             $query->addValue('fk_slotname', $slotname);
             $dbc->query($query, IMPORTER_CONNECTION);
             // If the update query failed the more recent time where clause,
             // this insert query will fail. That is fine, just ignore.
         } catch (DuplicateKeyDatabaseException $e) {
         }
     }
 }