Właściwe użycie php mysqli autocommit i rollback
Problemy z prawidłowym użyciem funkcji automatycznego zatwierdzania mysqli. Poniżej znajdują się zapytania.
Tabela 1 i Tabela 3 to InnoDB, natomiast Tabela 2 to MyISAM
Wartości do tabeli 2 i tabeli 3 są wstawiane poprawnie, ale wartości do tabeli 1 nie są zapisywane. Podczas uruchamiania kodu nie występują błędy.
$dbconnect->autocommit(false);
$stmt = $dbconnect->prepare("INSERT INTO `table1`(`col1`,`col2`) VALUES (?,?)");
$stmt->bind_param('ss',$val1,$val2);
$stmt->execute();
$dbconnect->rollback();
$stmt = $dbconnect->prepare("INSERT INTO `table2`(`col1`,`col2`) VALUES (?,?)");
$stmt->bind_param('ss',$val3,$val4);
$stmt->execute();
$dbconnect->rollback();
$stmt = $dbconnect->prepare("INSERT INTO `table3`(`col1`,`col2`) VALUES (?,?)");
$stmt->bind_param('ss',$val5,$val6);
$stmt->execute();
$dbconnect->commit();
Kiedy i jak używasz autocommit (false) i rollback ()?