W3docs

commit

Conheça a função mysqli_commit() do PHP para confirmar transações MySQL, com exemplos de uso básico e avançado com tratamento de erros.

Neste artigo, vamos nos concentrar na função mysqli_commit() do PHP, que é usada para confirmar uma transação no MySQL. Apresentaremos uma visão geral da função, como ela funciona e exemplos de seu uso.

Introdução à função mysqli_commit()

A função mysqli_commit() é uma função procedural integrada do PHP que confirma a transação atual para uma conexão com banco de dados MySQL. Isso é útil quando você precisa salvar permanentemente as alterações feitas em uma tabela de banco de dados, como atualizações ou exclusões, dentro de um bloco de transação. Observe que o equivalente orientado a objetos é o método $mysqli->commit().

Como usar a função mysqli_commit()

O uso de mysqli_commit() requer uma conexão MySQLi válida e uma transação que tenha sido iniciada (tipicamente desabilitando o autocommit). Veja um exemplo procedural básico:

Uso básico de mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

// Disable autocommit to start a transaction
mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit the transaction
$result = mysqli_commit($mysqli);
if ($result) {
    echo "Transaction committed successfully.";
} else {
    echo "Transaction commit failed: " . mysqli_error($mysqli);
}

mysqli_close($mysqli);
?>

Parâmetros e Valor de Retorno:

  • $mysqli: O recurso de conexão MySQLi retornado por mysqli_connect().
  • $transaction (opcional): Uma string que especifica o nome da transação (suportado no MySQL 8.0+).
  • Retorna: true em caso de sucesso, false em caso de falha.

Uso avançado

A função mysqli_commit() pode lidar com nomes de transações e frequentemente é combinada com tratamento de erros para garantir a integridade dos dados. Se uma confirmação falhar, você geralmente deve reverter a transação. Veja um exemplo que demonstra o tratamento adequado de erros e o parâmetro opcional de transação:

Uso avançado de mysqli_commit()

<?php
$mysqli = mysqli_connect("localhost", "username", "password", "database");
if (!$mysqli) {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    exit();
}

mysqli_autocommit($mysqli, false);

// execute queries using the connection

// Commit with an optional transaction name
$result = mysqli_commit($mysqli, "my_transaction");
if (!$result) {
    echo "Commit failed: " . mysqli_error($mysqli);
    // Roll back changes if commit fails
    mysqli_rollback($mysqli);
}

mysqli_close($mysqli);
?>

Neste exemplo, desabilitamos o autocommit, executamos consultas e tentamos confirmar usando um nome de transação específico. Se mysqli_commit() retornar false, capturamos o erro e chamamos mysqli_rollback() para reverter as alterações, garantindo a consistência do banco de dados.

Conclusão

Em conclusão, mysqli_commit() é uma função procedural confiável para confirmar transações no MySQL dentro de scripts PHP. Ao compreender seus parâmetros, valores de retorno e o tratamento adequado de erros, você pode gerenciar com segurança as alterações no banco de dados. Lembre-se de que o equivalente orientado a objetos $mysqli->commit() se comporta de forma idêntica, mas é chamado como um método em um objeto MySQLi.

Prática

Prática
O que a função mysqli_commit no PHP faz?
O que a função mysqli_commit no PHP faz?
Was this page helpful?