Exemplo n.º 1
0
 /**
  * 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());
     }
 }
Exemplo n.º 2
0
 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());
 }
Exemplo n.º 4
0
 /**
  * @see \herosphp\db\interfaces\Idb::inTransaction()
  */
 public function inTransaction()
 {
     if ($this->link == null) {
         $this->connect();
     }
     return $this->link->inTransaction();
 }
Exemplo n.º 5
0
 /**
 	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();
         }
     }
 }
Exemplo n.º 6
0
 /**
  * Rollback.
  * Provides a fluent interface.
  *
  * @return PDOMySQL
  */
 public function rollback()
 {
     if (isset($this->link) && $this->link->inTransaction()) {
         $this->link->rollBack();
     }
     return $this;
 }
Exemplo n.º 7
0
 public function inTransaction()
 {
     if (!$this->pdo) {
         return false;
     }
     return $this->pdo->inTransaction();
 }
Exemplo n.º 8
0
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();
    }
}
Exemplo n.º 9
0
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;
        }
    }
}
Exemplo n.º 10
0
 /**
  * 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;
 }
Exemplo n.º 11
0
 public function rollback()
 {
     $this->transactionNestingLevel--;
     if ($this->transactionNestingLevel == 0 && $this->db->inTransaction()) {
         $this->db->rollBack();
     }
 }
Exemplo n.º 12
0
 /**
  * Rollsback a transaction
  *
  * @return bool true on success, false otherwise
  */
 public function rollbackTransaction()
 {
     if (!$this->_connection->inTransaction()) {
         return false;
     }
     return $this->_connection->rollback();
 }
Exemplo n.º 13
0
 /**
  * Almacena los errores
  * @param string $error
  */
 protected function catchError($error)
 {
     if ($this->connection->inTransaction()) {
         $this->errorTran[] = $error;
         $this->stateTran = FALSE;
     }
     $this->lastError = $error;
 }
Exemplo n.º 14
0
 public function inTransaction()
 {
     if (!$this->isConnected) {
         return false;
     }
     $this->connect();
     return parent::inTransaction();
 }
Exemplo n.º 15
0
 /**
  * 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;
 }
Exemplo n.º 16
0
 /**
  * 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();
             }
         }
     }
 }
Exemplo n.º 17
0
    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));
        }
    }
Exemplo n.º 18
0
 /**
  * (PHP 5 &gt;= 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();
 }
Exemplo n.º 19
0
 public function inTransaction()
 {
     return $this->con->inTransaction();
 }
Exemplo n.º 20
0
    // 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
Exemplo n.º 21
0
 /**
  * @return bool
  * @throws \Compeek\PDOWrapper\NotConnectedException
  */
 public function inTransaction()
 {
     $this->requireConnection();
     return $this->pdo->inTransaction();
 }
Exemplo n.º 22
0
 /**
  * 判断当前是否有活动的事务
  * @return boolean
  */
 public function inTransaction()
 {
     return $this->dbObj->inTransaction();
 }
Exemplo n.º 23
0
 /**
  * @return bool
  */
 public function inTransaction()
 {
     $archLog = array('method' => 'PDO::inTransaction', 'input' => array(), 'output' => $this->PDO->inTransaction(), 'pointer' => $this->assignPointerString());
     return self::setLogReturnOutput($archLog);
 }
Exemplo n.º 24
0
 /**
  * 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;
     }
 }
Exemplo n.º 28
0
 /**
  * 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();
 }
Exemplo n.º 29
0
 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;
     }
 }
Exemplo n.º 30
0
 /**
  * 检查是否在一个事务内
  * @return bool
  * @throws DebugException
  */
 public function inTransaction()
 {
     $this->_PDOConn = $this->connect();
     return $this->_PDOConn->inTransaction();
 }