本文整理汇总了PHP中odbc_commit函数的典型用法代码示例。如果您正苦于以下问题:PHP odbc_commit函数的具体用法?PHP odbc_commit怎么用?PHP odbc_commit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了odbc_commit函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: sql_transaction
function sql_transaction($status = 'begin')
{
switch ($status) {
case 'begin':
$result = @odbc_autocommit($this->db_connect_id, false);
$this->transaction = true;
break;
case 'commit':
$result = @odbc_commit($this->db_connect_id);
@odbc_autocommit($this->db_connect_id, true);
$this->transaction = false;
if (!$result) {
@odbc_rollback($this->db_connect_id);
@odbc_autocommit($this->db_connect_id, true);
}
break;
case 'rollback':
$result = @odbc_rollback($this->db_connect_id);
@odbc_autocommit($this->db_connect_id, true);
$this->transaction = false;
break;
default:
$result = true;
}
return $result;
}
示例2: commitTransaction
/**
* commit the sql transaction
*
*/
protected function commitTransaction()
{
if (self::$transactionStarted[$this->datastore] == true) {
if (!odbc_commit($this->con)) {
throw new Exception('unable to commit transaction: ' . odbc_errormsg($this->con));
}
self::$transactionStarted[$this->datastore] = false;
}
}
示例3: _sql_transaction
/**
* SQL Transaction
* @access: private
*/
function _sql_transaction($status = 'begin')
{
switch ($status) {
case 'begin':
return @odbc_autocommit($this->db_connect_id, false);
break;
case 'commit':
$result = @odbc_commit($this->db_connect_id);
@odbc_autocommit($this->db_connect_id, true);
return $result;
break;
case 'rollback':
$result = @odbc_rollback($this->db_connect_id);
@odbc_autocommit($this->db_connect_id, true);
return $result;
break;
}
return true;
}
示例4: sql_query
function sql_query($query = "", $transaction = FALSE)
{
//
// Remove any pre-existing queries
//
unset($this->query_result);
unset($this->row);
if ($query != "") {
$this->num_queries++;
if (!eregi("^INSERT ", $query)) {
if (eregi("LIMIT", $query)) {
preg_match("/^(.*)LIMIT ([0-9]+)[, ]*([0-9]+)*/s", $query, $limits);
$query = $limits[1];
if ($limits[3]) {
$row_offset = $limits[2];
$num_rows = $limits[3];
} else {
$row_offset = 0;
$num_rows = $limits[2];
}
$query .= " FETCH FIRST " . ($row_offset + $num_rows) . " ROWS ONLY OPTIMIZE FOR " . ($row_offset + $num_rows) . " ROWS";
$this->query_result = odbc_exec($this->db_connect_id, $query);
$query_limit_offset = $row_offset;
$this->result_numrows[$this->query_result] = $num_rows;
} else {
$this->query_result = odbc_exec($this->db_connect_id, $query);
$row_offset = 0;
$this->result_numrows[$this->query_result] = 5000000.0;
}
$result_id = $this->query_result;
if ($this->query_result && eregi("^SELECT", $query)) {
for ($i = 1; $i < odbc_num_fields($result_id) + 1; $i++) {
$this->result_field_names[$result_id][] = odbc_field_name($result_id, $i);
}
$i = $row_offset + 1;
$k = 0;
while (odbc_fetch_row($result_id, $i) && $k < $this->result_numrows[$result_id]) {
for ($j = 1; $j < count($this->result_field_names[$result_id]) + 1; $j++) {
$this->result_rowset[$result_id][$k][$this->result_field_names[$result_id][$j - 1]] = odbc_result($result_id, $j);
}
$i++;
$k++;
}
$this->result_numrows[$result_id] = $k;
$this->row_index[$result_id] = 0;
} else {
$this->result_numrows[$result_id] = @odbc_num_rows($result_id);
$this->row_index[$result_id] = 0;
}
} else {
if (eregi("^(INSERT|UPDATE) ", $query)) {
$query = preg_replace("/\\\\'/s", "''", $query);
}
$this->query_result = odbc_exec($this->db_connect_id, $query);
if ($this->query_result) {
$sql_id = "VALUES(IDENTITY_VAL_LOCAL())";
$id_result = odbc_exec($this->db_connect_id, $sql_id);
if ($id_result) {
$row_result = odbc_fetch_row($id_result);
if ($row_result) {
$this->next_id[$this->query_result] = odbc_result($id_result, 1);
}
}
}
odbc_commit($this->db_connect_id);
$this->query_limit_offset[$this->query_result] = 0;
$this->result_numrows[$this->query_result] = 0;
}
return $this->query_result;
} else {
return false;
}
}
示例5: commit
/**
* Commit a transaction
*
* @param unknown_type $model
* @return boolean True on success, false on fail
* (i.e. if the database/model does not support transactions,
* or a transaction has not started).
*/
function commit(&$model)
{
if (parent::commit($model)) {
if (odbc_commit($this->connection)) {
$this->_transactionStarted = false;
return true;
}
}
return false;
}
示例6: commit
function commit()
{
odbc_commit($this->conneection);
odbc_autocommit($this->connection, true);
}
示例7: CommitTrans
function CommitTrans($ok = true)
{
if ($this->transOff) {
return true;
}
if (!$ok) {
return $this->RollbackTrans();
}
if ($this->transCnt) {
$this->transCnt -= 1;
}
$this->_autocommit = true;
$ret = odbc_commit($this->_connectionID);
odbc_autocommit($this->_connectionID, true);
return $ret;
}
示例8: _trans_commit
/**
* Commit Transaction
*
* @return bool
*/
protected function _trans_commit()
{
if (odbc_commit($this->conn_id)) {
odbc_autocommit($this->conn_id, TRUE);
return TRUE;
}
return FALSE;
}
示例9: transCommit
public function transCommit()
{
$commit = odbc_commit($this->connect);
odbc_autocommit($this->connect, true);
return $commit;
}
示例10: handleTransactionQueries
/**
* Makes sure each database and extension handles BEGIN, COMMIT and ROLLBACK
*
* @param string &$sql The SQL to check for a transaction query
* @param string $result_class The type of result object to create
* @return mixed `FALSE` if normal processing should continue, otherwise an object of the type $result_class
*/
private function handleTransactionQueries(&$sql, $result_class)
{
// SQL Server supports transactions, but starts then with BEGIN TRANSACTION
if ($this->type == 'mssql' && preg_match('#^\\s*(begin|start(\\s+transaction)?)\\s*#i', $sql)) {
$sql = 'BEGIN TRANSACTION';
}
$begin = FALSE;
$commit = FALSE;
$rollback = FALSE;
// Track transactions since most databases don't support nesting
if (preg_match('#^\\s*(begin|start)(\\s+(transaction|work))?\\s*$#iD', $sql)) {
if ($this->inside_transaction) {
throw new fProgrammerException('A transaction is already in progress');
}
$this->inside_transaction = TRUE;
$begin = TRUE;
} elseif (preg_match('#^\\s*(commit)(\\s+(transaction|work))?\\s*$#iD', $sql)) {
if (!$this->inside_transaction) {
throw new fProgrammerException('There is no transaction in progress');
}
$this->inside_transaction = FALSE;
$commit = TRUE;
} elseif (preg_match('#^\\s*(rollback)(\\s+(transaction|work))?\\s*$#iD', $sql)) {
if (!$this->inside_transaction) {
throw new fProgrammerException('There is no transaction in progress');
}
$this->inside_transaction = FALSE;
$rollback = TRUE;
}
if (!$begin && !$commit && !$rollback) {
return FALSE;
}
// The PDO, OCI8, ODBC and SQLSRV extensions require special handling through methods and functions
$is_pdo = $this->extension == 'pdo';
$is_oci = $this->extension == 'oci8';
$is_odbc = $this->extension == 'odbc';
$is_sqlsrv = $this->extension == 'sqlsrv';
if (!$is_pdo && !$is_oci && !$is_odbc && !$is_sqlsrv) {
return FALSE;
}
// PDO seems to act weird if you try to start transactions through a normal query call
if ($is_pdo) {
try {
$is_mssql = $this->type == 'mssql' && substr($this->database, 0, 4) != 'dsn:';
$is_oracle = $this->type == 'oracle' && substr($this->database, 0, 4) != 'dsn:';
if ($begin) {
// The SQL Server PDO object hasn't implemented transactions
if ($is_mssql) {
$this->connection->exec('BEGIN TRANSACTION');
} elseif ($is_oracle) {
$this->connection->setAttribute(PDO::ATTR_AUTOCOMMIT, FALSE);
} else {
$this->connection->beginTransaction();
}
} elseif ($commit) {
if ($is_mssql) {
$this->connection->exec('COMMIT');
} elseif ($is_oracle) {
$this->connection->exec('COMMIT');
$this->connection->setAttribute(PDO::ATTR_AUTOCOMMIT, TRUE);
} else {
$this->connection->commit();
}
} elseif ($rollback) {
if ($is_mssql) {
$this->connection->exec('ROLLBACK');
} elseif ($is_oracle) {
$this->connection->exec('ROLLBACK');
$this->connection->setAttribute(PDO::ATTR_AUTOCOMMIT, TRUE);
} else {
$this->connection->rollBack();
}
}
} catch (Exception $e) {
$db_type_map = array('mssql' => 'MSSQL', 'mysql' => 'MySQL', 'oracle' => 'Oracle', 'postgresql' => 'PostgreSQL', 'sqlite' => 'SQLite');
throw new fSQLException('%1$s error (%2$s) in %3$s', $db_type_map[$this->type], $e->getMessage(), $sql);
}
} elseif ($is_oci) {
if ($commit) {
oci_commit($this->connection);
} elseif ($rollback) {
oci_rollback($this->connection);
}
} elseif ($is_odbc) {
if ($begin) {
odbc_autocommit($this->connection, FALSE);
} elseif ($commit) {
odbc_commit($this->connection);
odbc_autocommit($this->connection, TRUE);
} elseif ($rollback) {
odbc_rollback($this->connection);
odbc_autocommit($this->connection, TRUE);
}
//.........这里部分代码省略.........
示例11: _trans_commit
/**
* Commit Transaction.
*
* @return bool
*/
protected function _trans_commit()
{
if (odbc_commit($this->conn_id)) {
odbc_autocommit($this->conn_id, true);
return true;
}
return false;
}
示例12: CommitTransaction
function CommitTransaction()
{
if ($this->auto_commit) {
return $this->SetError("Commit transaction", "transaction changes are being auto commited");
}
if (!odbc_commit($this->connection)) {
return $this->SetODBCError("Commit transaction", "Could not commit the current transaction", $php_errormsg);
}
return 1;
}
示例13: commit
/**
* Commit transaction and re-enable autocommit mode
*
* @throws VerticaException
* @author Sergii Katrych <sergii.katrych@westwing.de>
*/
public function commit()
{
$result = odbc_commit($this->getConnection());
if (false === $result) {
throw new VerticaException("Failed to commit transaction due to " . odbc_errormsg($this->getConnection()), odbc_error($this->getConnection()));
}
$result = odbc_autocommit($this->getConnection(), true);
if (false === $result) {
throw new VerticaException("Failed to re-enable autocommit to get out of transactions mode. " . odbc_errormsg($this->getConnection()), odbc_error($this->getConnection()));
}
}
示例14: commit
public function commit()
{
odbc_commit($this->_con);
}
示例15: commit
/**
* Commit queries without ending the transaction
*/
public function commit()
{
switch ($this->mode) {
case "mysql":
$result = $this->server->commit();
break;
case "postgres":
case "redshift":
$result = $this->query("COMMIT");
break;
case "odbc":
$result = odbc_commit($this->server);
break;
default:
throw new \Exception("commit() not supported in this mode (" . $this->mode . ")");
}
if (!$result) {
$this->error();
}
return true;
}