W3docs

commit

Scopri la funzione mysqli_commit() in PHP per eseguire il commit di una transazione MySQL, con esempi e gestione degli errori.

In questo articolo ci concentreremo sulla funzione mysqli_commit() in PHP, utilizzata per eseguire il commit di una transazione in MySQL. Forniremo una panoramica della funzione, del suo funzionamento e degli esempi di utilizzo.

Introduzione alla funzione mysqli_commit()

La funzione mysqli_commit() è una funzione procedurale integrata in PHP che esegue il commit della transazione corrente per una connessione a un database MySQL. Risulta utile quando si desidera salvare in modo permanente le modifiche apportate a una tabella del database — come aggiornamenti o eliminazioni — all'interno di un blocco di transazione. Si noti che l'equivalente orientato agli oggetti è il metodo $mysqli->commit().

Come utilizzare la funzione mysqli_commit()

L'utilizzo di mysqli_commit() richiede una connessione MySQLi valida e una transazione avviata (in genere disabilitando l'autocommit). Ecco un esempio procedurale di base:

Utilizzo di base di 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);
?>

Parametri e valore restituito:

  • $mysqli: la risorsa di connessione MySQLi restituita da mysqli_connect().
  • $transaction (opzionale): una string che specifica il nome della transazione (supportato in MySQL 8.0+).
  • Restituisce: true in caso di successo, false in caso di errore.

Utilizzo avanzato

La funzione mysqli_commit() può gestire nomi di transazione ed è spesso abbinata alla gestione degli errori per garantire l'integrità dei dati. Se un commit fallisce, è generalmente necessario eseguire il rollback della transazione. Ecco un esempio che illustra una corretta gestione degli errori e l'utilizzo del parametro opzionale per il nome della transazione:

Utilizzo avanzato di 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);
?>

In questo esempio, disabilitiamo l'autocommit, eseguiamo le query e tentiamo il commit utilizzando un nome di transazione specifico. Se mysqli_commit() restituisce false, intercettiamo l'errore e chiamiamo mysqli_rollback() per annullare le modifiche, garantendo la coerenza del database.

Conclusione

In conclusione, mysqli_commit() è una funzione procedurale affidabile per eseguire il commit delle transazioni in MySQL all'interno di script PHP. Comprendendo i suoi parametri, i valori restituiti e la corretta gestione degli errori, è possibile gestire in modo sicuro le modifiche al database. Ricorda che l'equivalente orientato agli oggetti $mysqli->commit() si comporta in modo identico, ma viene chiamato come metodo su un oggetto MySQLi.

Esercizio

Pratica
Cosa fa la funzione mysqli_commit in PHP?
Cosa fa la funzione mysqli_commit in PHP?
Was this page helpful?