Example #1
0
 /**
  * REPLACE INTO
  *
  * @param Model $obj
  * @param bool $saveAllColumns
  * @return null
  */
 public function saveByReplace(Model $obj, $saveAllColumns = false)
 {
     $rtn = null;
     $data = $obj->getDataArray();
     $modified = $saveAllColumns ? array_keys($data) : $obj->getModified();
     $cols = array();
     $values = array();
     $qParams = array();
     foreach ($modified as $key) {
         $cols[] = '`' . $key . '`';
         $values[] = ':' . $key;
         $qParams[':' . $key] = $data[$key];
     }
     if (count($cols)) {
         $colString = implode(', ', $cols);
         $valString = implode(', ', $values);
         $queryString = 'REPLACE INTO ' . $this->tableName . ' (' . $colString . ') VALUES (' . $valString . ')';
         $query = Database::getConnection('write')->prepare($queryString);
         if ($query->execute($qParams)) {
             $newId = !empty($data[$this->primaryKey]) ? $data[$this->primaryKey] : Database::getConnection('write')->lastInsertId();
             $rtn = $this->getByPrimaryKey($newId, 'write');
         }
     }
     return $rtn;
 }