/** * Checks if inside a transaction * * @return bool * @throws DatabaseException */ public function inTransaction() : bool { try { return $this->pdo->inTransaction(); } catch (\PDOException $e) { throw DatabaseException::pdoError($e->getMessage()); } }
public function isTransactionRunning() { if (method_exists($this->pdo, 'inTransaction')) { return $this->pdo->inTransaction(); } else { return parent::isTransactionRunning(); } }
/** * @test */ public function RollBack() { $this->transaction->beginTransaction(); $rollBacked = $this->transaction->rollBack(); $this->assertTrue($rollBacked); $this->assertFalse($this->pdo->inTransaction()); $this->assertFalse($this->transaction->isTransactionActive()); }
/** * @see \herosphp\db\interfaces\Idb::inTransaction() */ public function inTransaction() { if ($this->link == null) { $this->connect(); } return $this->link->inTransaction(); }
/** Database install */ private static function install_schema() { $data = $_SESSION; $sql = str_replace('[[now]]', time(), file_get_contents('assets/sql/anchor.sql')); $dsn = 'mysql:dbname=' . $data['db']['name'] . ';host=' . $data['db']['host'] . ';port=' . $data['db']['port']; $dbh = new PDO($dsn, $data['db']['user'], $data['db']['pass']); try { $dbh->beginTransaction(); $dbh->exec('SET NAMES `utf8`'); $dbh->exec($sql); // create metadata $sql = "INSERT INTO `meta` (`key`, `value`) VALUES ('sitename', ?), ('description', ?), ('theme', ?);"; $statement = $dbh->prepare($sql); $statement->execute(array($data['site']['site_name'], $data['site']['site_description'], $data['site']['theme'])); // create user account $sql = "INSERT INTO `users` (`username`, `password`, `email`, `real_name`, `bio`, `status`, `role`) VALUES (?, ?, ?, 'Administrator', 'Default account for Anchor.', 'active', 'administrator');"; $statement = $dbh->prepare($sql); $statement->execute(array($data['user']['username'], crypt($data['user']['password'], $_SESSION['key']), $data['user']['email'])); $dbh->commit(); } catch (PDOException $e) { Messages::add($e->getMessage()); // rollback any changes if ($dbh->inTransaction()) { $dbh->rollBack(); } } }
/** * Rollback. * Provides a fluent interface. * * @return PDOMySQL */ public function rollback() { if (isset($this->link) && $this->link->inTransaction()) { $this->link->rollBack(); } return $this; }
public function inTransaction() { if (!$this->pdo) { return false; } return $this->pdo->inTransaction(); }
function executeQuery($sqlCommand, $parameters) { try { $connection = new PDO('mysql:dbname=circuito;host=localhost', 'root', ''); $command = $connection->prepare($sqlCommand); if ($parameters != null) { foreach ($parameters as $key => $value) { $listaRetorno = array(); $command->bindValue($key, $value); } } $command->execute(); $listaRetorno = array(); for ($i = 0; $row = $command->fetch(); $i++) { array_push($listaRetorno, $row); } return $listaRetorno; } catch (PDOException $ex) { echo $ex->getTraceAsString(); if ($connection != null) { if ($connection->inTransaction()) { $connection->rollBack(); } } return array(); } }
function executeQuery($sqlCommand, $parameters) { try { $connection = new PDO('mysql:dbname=taller;host=localhost', 'root', 'mysql'); $command = $connection->prepare($sqlCommand); if ($parameters != null) { foreach ($parameters as $key => $value) { $listaRetorno = array(); $command->bindValue($key, $value); //echo $key."=>".$value."<br>"; } } $command->execute(); $listaRetorno = array(); for ($i = 0; $row = $command->fetch(PDO::FETCH_ASSOC); $i++) { array_push($listaRetorno, $row); } return $listaRetorno; } catch (PDOException $ex) { echo $ex->getMessage(); if ($connection != null) { if ($connection->inTransaction()) { $connection->rollBack(); } } return array(); } finally { //UTILIZADO NA VERSAO DO PHP 5.6 NAS PREVIAS NAO É COMPATÍVEL if ($connection != null) { //FECHA A CONEXAO COM O BANCO DE DADOS $connection = null; } } }
/** * Executes a prepared statement * * @param array $inputParams An array of values with as many elements as * there are bound parameters in the SQL statement being executed. * @throws \PDOException * @return bool TRUE on success or FALSE on failure */ public function execute($inputParams = null) { $mode = OCI_COMMIT_ON_SUCCESS; if ($this->_pdoOci8->inTransaction()) { $mode = OCI_DEFAULT; } // Set up bound parameters, if passed in if (is_array($inputParams)) { foreach ($inputParams as $key => $value) { $this->bindParam($key, $inputParams[$key]); } } // The @ won't ignore the error in strict mode, so catch ErrorException try { $result = @oci_execute($this->_sth, $mode); } catch (\ErrorException $e) { $result = false; } if ($result != true) { $e = $this->errorInfo(); $pdo_exception = new \PDOException($e[2], $e[1]); $pdo_exception->errorInfo = $e; throw $pdo_exception; } return $result; }
public function rollback() { $this->transactionNestingLevel--; if ($this->transactionNestingLevel == 0 && $this->db->inTransaction()) { $this->db->rollBack(); } }
/** * Rollsback a transaction * * @return bool true on success, false otherwise */ public function rollbackTransaction() { if (!$this->_connection->inTransaction()) { return false; } return $this->_connection->rollback(); }
/** * Almacena los errores * @param string $error */ protected function catchError($error) { if ($this->connection->inTransaction()) { $this->errorTran[] = $error; $this->stateTran = FALSE; } $this->lastError = $error; }
public function inTransaction() { if (!$this->isConnected) { return false; } $this->connect(); return parent::inTransaction(); }
/** * Starts a transaction * * @abstract * @return void */ public function startTransaction() { if (!$this->pdoConnection->inTransaction()) { if (!$this->pdoConnection->beginTransaction()) { throw new RelationalSqlException("Unable to start transaction for unknown reasons"); } return true; } return false; }
/** * Commit transaction. */ public function commit() { if (true === $this->transactional) { $this->transactionalLevel -= 1; if (0 === $this->transactionalLevel) { $this->transactional = false; if ($this->conn->inTransaction()) { $this->conn->commit(); } } } }
public function inTransaction() { try { $inTransaction = $this->pdo->inTransaction(); } catch (Exception $e) { throw new base_database_Exception(TMS(base_database_Exception::DB_TRANSACTION_NOT_ACTIVE)); } if ($inTransaction === false) { throw new base_database_Exception(TMS(base_database_Exception::DB_TRANSACTION_NOT_ACTIVE)); } }
/** * (PHP 5 >= 5.3.3, Bundled pdo_pgsql)<br/> * Checks if inside a transaction * @link http://php.net/manual/en/pdo.intransaction.php * @return bool <b>TRUE</b> if a transaction is currently active, and <b>FALSE</b> if not. */ function inTransaction() { return $this->db->inTransaction(); }
public function inTransaction() { return $this->con->inTransaction(); }
// create a unique password for our installation $password = random(8); $sql = str_replace('[[now]]', time(), file_get_contents('anchor.sql')); $sql = str_replace('[[password]]', crypt($password), $sql); $sql = str_replace('[[email]]', strtolower(trim($post['email'])), $sql); try { $dbh->beginTransaction(); $dbh->exec($sql); $sql = "INSERT INTO `meta` (`key`, `value`) VALUES ('sitename', ?), ('description', ?), ('theme', ?);"; $statement = $dbh->prepare($sql); $statement->execute(array($post['name'], $post['description'], $post['theme'])); $dbh->commit(); } catch (PDOException $e) { $errors[] = $e->getMessage(); // rollback any changes if ($dbh->inTransaction()) { $dbh->rollBack(); } } } // output response header('Content-Type: application/json'); if (empty($errors)) { //no errors we're all gooood $response['installed'] = true; $response['password'] = $password; } else { $response['installed'] = false; $response['errors'] = $errors; } // output json formatted string
/** * @return bool * @throws \Compeek\PDOWrapper\NotConnectedException */ public function inTransaction() { $this->requireConnection(); return $this->pdo->inTransaction(); }
/** * 判断当前是否有活动的事务 * @return boolean */ public function inTransaction() { return $this->dbObj->inTransaction(); }
/** * @return bool */ public function inTransaction() { $archLog = array('method' => 'PDO::inTransaction', 'input' => array(), 'output' => $this->PDO->inTransaction(), 'pointer' => $this->assignPointerString()); return self::setLogReturnOutput($archLog); }
/** * Checks if inside a transaction * * @return bool */ public function inTransaction() : bool { return $this->pdo->inTransaction(); }
/** * @return mixed */ function inTransaction() { return $this->database->inTransaction(); }
public function update(ImportURLModel $importURL, $fields, ImportURLEditMetaDataModel $importURLEditMetaDataModel) { $alreadyInTransaction = $this->db->inTransaction(); // Make Information Data $fieldsSQL1 = array(); $fieldsParams1 = array('id' => $importURL->getId()); foreach ($fields as $field) { $fieldsSQL1[] = " " . $field . "=:" . $field . " "; if ($field == 'title') { $fieldsParams1['title'] = substr($importURL->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'area_id') { $fieldsParams1['area_id'] = $importURL->getAreaId(); } else { if ($field == 'is_enabled') { $fieldsParams1['is_enabled'] = $importURL->getIsEnabled() ? 1 : 0; } else { if ($field == 'is_manual_events_creation') { $fieldsParams1['is_manual_events_creation'] = $importURL->getIsManualEventsCreation() ? 1 : 0; } else { if ($field == 'country_id') { $fieldsParams1['country_id'] = $importURL->getCountryId(); } else { if ($field == 'expired_at') { $fieldsParams1['expired_at'] = $importURL->getExpiredAt() ? $importURL->getExpiredAt()->format("Y-m-d H:i:s") : null; } else { if ($field == 'group_id') { $fieldsParams1['group_id'] = $importURL->getGroupId(); } } } } } } } } // Make History Data $fieldsSQL2 = array('import_url_id', 'user_account_id', 'created_at', 'approved_at'); $fieldsSQLParams2 = array(':import_url_id', ':user_account_id', ':created_at', ':approved_at'); $fieldsParams2 = array('import_url_id' => $importURL->getId(), 'user_account_id' => $importURLEditMetaDataModel->getUserAccount() ? $importURLEditMetaDataModel->getUserAccount()->getId() : null, 'created_at' => $this->timesource->getFormattedForDataBase(), 'approved_at' => $this->timesource->getFormattedForDataBase()); if ($importURLEditMetaDataModel->getEditComment()) { $fieldsSQL2[] = ' edit_comment '; $fieldsSQLParams2[] = ' :edit_comment '; $fieldsParams2['edit_comment'] = $importURLEditMetaDataModel->getEditComment(); } foreach ($this->possibleFields as $field) { if (in_array($field, $fields) || $field == 'title') { $fieldsSQL2[] = " " . $field . " "; $fieldsSQLParams2[] = " :" . $field . " "; if ($field == 'title') { $fieldsParams2['title'] = substr($importURL->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'area_id') { $fieldsParams2['area_id'] = $importURL->getAreaId(); } else { if ($field == 'country_id') { $fieldsParams2['country_id'] = $importURL->getCountryId(); } else { if ($field == 'group_id') { $fieldsParams2['group_id'] = $importURL->getGroupId(); } else { if ($field == 'expired_at') { $fieldsParams2['expired_at'] = $importURL->getExpiredAt() ? $importURL->getExpiredAt()->format("Y-m-d H:i:s") : null; } else { if ($field == 'is_enabled') { $fieldsParams2['is_enabled'] = $importURL->getIsEnabled() ? 1 : 0; } else { if ($field == 'is_manual_events_creation') { $fieldsParams2['is_manual_events_creation'] = $importURL->getIsManualEventsCreation() ? 1 : 0; } } } } } } } $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " 0 "; } else { $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " -2 "; } } try { if (!$alreadyInTransaction) { $this->db->beginTransaction(); } // Information SQL $stat = $this->db->prepare("UPDATE import_url_information SET " . implode(",", $fieldsSQL1) . " WHERE id=:id"); $stat->execute($fieldsParams1); // History SQL $stat = $this->db->prepare("INSERT INTO import_url_history (" . implode(",", $fieldsSQL2) . ") VALUES (" . implode(",", $fieldsSQLParams2) . ")"); $stat->execute($fieldsParams2); if (!$alreadyInTransaction) { $this->db->commit(); } } catch (Exception $e) { if (!$alreadyInTransaction) { $this->db->rollBack(); } throw $e; } }
public function update(UserGroupModel $userGroup, $fields, UserAccountModel $user = null) { $alreadyInTransaction = $this->db->inTransaction(); // Make Information Data $fieldsSQL1 = array(); $fieldsParams1 = array('id' => $userGroup->getId()); foreach ($fields as $field) { $fieldsSQL1[] = " " . $field . "=:" . $field . " "; if ($field == 'title') { $fieldsParams1['title'] = substr($userGroup->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams1['description'] = $userGroup->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams1['is_deleted'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_in_index') { $fieldsParams1['is_in_index'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_includes_anonymous') { $fieldsParams1['is_includes_anonymous'] = $userGroup->getIsIncludesAnonymous() ? 1 : 0; } else { if ($field == 'is_includes_users') { $fieldsParams1['is_includes_users'] = $userGroup->getIsIncludesUsers() ? 1 : 0; } else { if ($field == 'is_includes_verified_users') { $fieldsParams1['is_includes_verified_users'] = $userGroup->getIsIncludesVerifiedUsers() ? 1 : 0; } } } } } } } } // Make History Data $fieldsSQL2 = array('user_group_id', 'user_account_id', 'created_at'); $fieldsSQLParams2 = array(':user_group_id', ':user_account_id', ':created_at'); $fieldsParams2 = array('user_group_id' => $userGroup->getId(), 'user_account_id' => $user ? $user->getId() : null, 'created_at' => $this->timesource->getFormattedForDataBase()); foreach ($this->possibleFields as $field) { if (in_array($field, $fields) || $field == 'title') { $fieldsSQL2[] = " " . $field . " "; $fieldsSQLParams2[] = " :" . $field . " "; if ($field == 'title') { $fieldsParams2['title'] = substr($userGroup->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams2['description'] = $userGroup->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams2['is_deleted'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_in_index') { $fieldsParams2['is_in_index'] = $userGroup->getIsDeleted() ? 1 : 0; } else { if ($field == 'is_includes_anonymous') { $fieldsParams2['is_includes_anonymous'] = $userGroup->getIsIncludesAnonymous() ? 1 : 0; } else { if ($field == 'is_includes_users') { $fieldsParams2['is_includes_users'] = $userGroup->getIsIncludesUsers() ? 1 : 0; } else { if ($field == 'is_includes_verified_users') { $fieldsParams2['is_includes_verified_users'] = $userGroup->getIsIncludesVerifiedUsers() ? 1 : 0; } } } } } } } $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " 0 "; } else { $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " -2 "; } } try { if (!$alreadyInTransaction) { $this->db->beginTransaction(); } // Information SQL $stat = $this->db->prepare("UPDATE user_group_information SET " . implode(",", $fieldsSQL1) . " WHERE id=:id"); $stat->execute($fieldsParams1); // History SQL $stat = $this->db->prepare("INSERT INTO user_group_history (" . implode(",", $fieldsSQL2) . ") VALUES (" . implode(",", $fieldsSQLParams2) . ")"); $stat->execute($fieldsParams2); if (!$alreadyInTransaction) { $this->db->commit(); } } catch (Exception $e) { if (!$alreadyInTransaction) { $this->db->rollBack(); } throw $e; } }
/** * Checks whether the connection is under a transaction *<code> * $connection->begin(); * var_dump($connection->isUnderTransaction()); //true *</code> * * @return bool */ public function isUnderTransaction() { return $this->_pdo->inTransaction(); }
public function update(TagModel $tag, $fields, TagEditMetaDataModel $tagEditMetaDataModel) { $alreadyInTransaction = $this->db->inTransaction(); // Make Information Data $fieldsSQL1 = array(); $fieldsParams1 = array('id' => $tag->getId()); foreach ($fields as $field) { $fieldsSQL1[] = " " . $field . "=:" . $field . " "; if ($field == 'title') { $fieldsParams1['title'] = substr($tag->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams1['description'] = $tag->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams1['is_deleted'] = $tag->getIsDeleted() ? 1 : 0; } } } } // Make History Data $fieldsSQL2 = array('tag_id', 'user_account_id', 'created_at', 'approved_at'); $fieldsSQLParams2 = array(':tag_id', ':user_account_id', ':created_at', ':approved_at'); $fieldsParams2 = array('tag_id' => $tag->getId(), 'user_account_id' => $tagEditMetaDataModel->getUserAccount() ? $tagEditMetaDataModel->getUserAccount()->getId() : null, 'created_at' => $this->timesource->getFormattedForDataBase(), 'approved_at' => $this->timesource->getFormattedForDataBase()); if ($tagEditMetaDataModel->getEditComment()) { $fieldsSQL2[] = ' edit_comment '; $fieldsSQLParams2[] = ' :edit_comment '; $fieldsParams2['edit_comment'] = $tagEditMetaDataModel->getEditComment(); } foreach ($this->possibleFields as $field) { if (in_array($field, $fields) || $field == 'title') { $fieldsSQL2[] = " " . $field . " "; $fieldsSQLParams2[] = " :" . $field . " "; if ($field == 'title') { $fieldsParams2['title'] = substr($tag->getTitle(), 0, VARCHAR_COLUMN_LENGTH_USED); } else { if ($field == 'description') { $fieldsParams2['description'] = $tag->getDescription(); } else { if ($field == 'is_deleted') { $fieldsParams2['is_deleted'] = $tag->getIsDeleted() ? 1 : 0; } } } $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " 0 "; } else { $fieldsSQL2[] = " " . $field . "_changed "; $fieldsSQLParams2[] = " -2 "; } } try { if (!$alreadyInTransaction) { $this->db->beginTransaction(); } // Information SQL $stat = $this->db->prepare("UPDATE tag_information SET " . implode(",", $fieldsSQL1) . " WHERE id=:id"); $stat->execute($fieldsParams1); // History SQL $stat = $this->db->prepare("INSERT INTO tag_history (" . implode(",", $fieldsSQL2) . ") VALUES (" . implode(",", $fieldsSQLParams2) . ")"); $stat->execute($fieldsParams2); if (!$alreadyInTransaction) { $this->db->commit(); } } catch (Exception $e) { if (!$alreadyInTransaction) { $this->db->rollBack(); } throw $e; } }
/** * 检查是否在一个事务内 * @return bool * @throws DebugException */ public function inTransaction() { $this->_PDOConn = $this->connect(); return $this->_PDOConn->inTransaction(); }