Commit using PHP

1

Setting SET AUTOCOMMIT = 0 on the connection, but not working.

I'm using $ mysqli-> real_connect ()

if (!$conn->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT=0')) {
    $fErro .= '<p>Não foi possível desativar o autocommit</p>';
}

PHP version 5.4.9 or 5.6.12. I'm having the same problem.

    
asked by anonymous 02.07.2015 / 15:45

2 answers

1

Welguri , the ideal would be to use transaction which implicitly disables autocommit until it is comitative and is super simple and secure:

<?php
    try 
    {
        // Primeiro de tudo, vamos começar a transação
        $conn->beginTransaction();

        // Um conjunto de querys, se uma falhar, um exception será lançado
        $conn->query('primeira query');
        $conn->query('segunda query');
        $conn->query('terceira query');

        // Se nós chegamos até aqui, significa que nenhum exception (erro) foi lançado
        // então nós comitamos a transação
        $conn->commit();
    } 
    catch (Exception $e) 
    {
        // Uma exception foi lançada
        // Nós então precisamos voltar as alterações
        $conn->rollback();
    }
?>
    
02.07.2015 / 17:46
2

According to documentation , to disable autocommit :

$conn->autocommit(FALSE);

Example usage:

$conn->autocommit(FALSE);

$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO Language VALUES ('DEU', 'Swabian', 'F', 9.4)");

$conn->commit();
$conn->close();
    
02.07.2015 / 17:45