Hi. In meiner Anwendung muss ich eine Transaktion verwenden, um zu verhindern, dass Daten bei einem Fehler geschrieben werden.
Der Output ist wie erwartet
Jedoch wird der Datensatz trotzdem geschrieben!
Ein "SET AUTOCOMMIT = 0" habe ich schon probiert, das hat jedoch nicht die gewünschte Wirkung gezeigt.
PHP-Code:
<?php
$mysql_commit = "COMMIT";
mysql_query("START TRANSACTION");
try {
mysql_query("INSERT INTO `table` (`id`, `type`, `title`) VALUES (NULL, 'picture', 'test')");
throw new Exception ('TEST EXCEPTION');
} //try
catch (Exception $e) {
echo $e->getMessage().PHP_EOL;
//rollback!
$mysql_commit = "ROLLBACK";
}
//commit or rollback
mysql_query($mysql_commit);
echo "commit: ".$mysql_commit;
?>
TEST EXCEPTION
commit: ROLLBACK
commit: ROLLBACK
Ein "SET AUTOCOMMIT = 0" habe ich schon probiert, das hat jedoch nicht die gewünschte Wirkung gezeigt.
Kommentar