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 pormysqli_connect().$transaction(opcional): Uma string que especifica o nome da transação (suportado no MySQL 8.0+).- Retorna:
trueem caso de sucesso,falseem 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.