public function getNextValue($sequence = '', $tableGenerator = 'manager_sequence') { $sql = new \Maestro\Database\MSQL("value", $tableGenerator, "(sequence='" . $sequence . "')"); $sql->setDb($this->db); $result = $this->db->query($sql->select()); $value = $result[0][0]; $sql = new \Maestro\Database\MSQL("value", $tableGenerator, "(sequence='" . $sequence . "')"); $sql->setDb($this->db); $result = $this->db->query($sql->update(':value + 1')); return $value; }
private function _getNextValue($sequence = 'admin') { $transaction = $this->db->beginTransaction(); $table = $this->db->getConfig('sequence.table'); $name = $this->db->getConfig('sequence.name'); $field = $this->db->getConfig('sequence.value'); $sql = new \Maestro\Database\MSQL($field, $table, "({$name} = '{$sequence}')"); $sql->setForUpdate(true); $result = $this->db->query($sql); $value = \Manager::getOptions('fetchStyle') == \FETCH_NUM ? $result[0][0] : $result[0][$field]; $nextValue = $value + 1; $this->db->execute($sql->update($nextValue), $nextValue); $transaction->commit(); return $value; }