/**
  * (non-PHPdoc).
  *
  * @see Alpha\Model\ActiveRecordProviderInterface::saveAttribute()
  */
 public function saveAttribute($attribute, $value)
 {
     self::$logger->debug('>>saveAttribute(attribute=[' . $attribute . '], value=[' . $value . '])');
     // assume that it is a persistent object that needs to be updated
     $sqlQuery = 'UPDATE ' . $this->BO->getTableName() . ' SET ' . $attribute . '=?, version_num = ? WHERE OID=?;';
     $this->BO->setLastQuery($sqlQuery);
     $stmt = self::getConnection()->stmt_init();
     $newVersionNumber = $this->BO->getVersionNumber()->getValue() + 1;
     if ($stmt->prepare($sqlQuery)) {
         if ($this->BO->getPropObject($attribute) instanceof Integer) {
             $bindingsType = 'i';
         } else {
             $bindingsType = 's';
         }
         $stmt->bind_param($bindingsType . 'ii', $value, $newVersionNumber, $this->BO->getOID());
         self::$logger->debug('Binding params [' . $bindingsType . 'i, ' . $value . ', ' . $this->BO->getOID() . ']');
         $stmt->execute();
     } else {
         throw new FailedSaveException('Failed to save attribute, error is [' . $stmt->error . '], query [' . $this->BO->getLastQuery() . ']');
     }
     $stmt->close();
     $this->BO->set($attribute, $value);
     $this->BO->set('version_num', $newVersionNumber);
     if ($this->BO->getMaintainHistory()) {
         $this->BO->saveHistory();
     }
     self::$logger->debug('<<saveAttribute');
 }
 /**
  * (non-PHPdoc).
  *
  * @see Alpha\Model\ActiveRecordProviderInterface::saveAttribute()
  */
 public function saveAttribute($attribute, $value)
 {
     self::$logger->debug('>>saveAttribute(attribute=[' . $attribute . '], value=[' . $value . '])');
     // assume that it is a persistent object that needs to be updated
     $sqlQuery = 'UPDATE ' . $this->BO->getTableName() . ' SET ' . $attribute . '=:attribute, version_num =:version WHERE OID=:OID;';
     $this->BO->setLastQuery($sqlQuery);
     $stmt = self::getConnection()->prepare($sqlQuery);
     $newVersionNumber = $this->BO->getVersionNumber()->getValue() + 1;
     if ($stmt instanceof SQLite3Stmt) {
         if ($this->BO->getPropObject($attribute) instanceof Integer) {
             $stmt->bindValue(':attribute', $value, SQLITE3_INTEGER);
         } else {
             $stmt->bindValue(':attribute', $value, SQLITE3_TEXT);
         }
         $stmt->bindValue(':version', $newVersionNumber, SQLITE3_INTEGER);
         $stmt->bindValue(':OID', $this->BO->getOID(), SQLITE3_INTEGER);
         $stmt->execute();
     } else {
         throw new FailedSaveException('Failed to save attribute, error is [' . self::getLastDatabaseError() . '], query [' . $this->BO->getLastQuery() . ']');
     }
     $stmt->close();
     $this->BO->set($attribute, $value);
     $this->BO->set('version_num', $newVersionNumber);
     if ($this->BO->getMaintainHistory()) {
         $this->BO->saveHistory();
     }
     self::$logger->debug('<<saveAttribute');
 }