0
vde69
04.01.20
✎
11:19
|
собственно идет запись только в одну таблицу, по чему не работает откат транзакции ?
код на PHP
if ( $this->mysqli->begin_transaction() ) {
try{
$err = false;
// добавляем в первую таблицу
$sql_1 = "INSERT INTO Files (Active,Type,Path,Name,Extension,Path_OLD) \n"
. "VALUES (0, 0, \"".$Path."\",\"".$Name."\",\"".$Extension."\", \"\")";
if ($this->mysqli->query($sql_1) == false) { $err = true; }
// получем ID автоинкремента
$ID_Files = $this->mysqli->insert_id();
if ( $ID_Files == 0 ) { $err = true; }
$sql_2 = "INSERT INTO Files_CRC (CRC,FG_CRC,ID_Files) \n"
. "VALUES (\"".$CRC."\", \"".$FG_CRC."\", \"".$ID_Files."\")";
if ($this->mysqli->query($sql_2) == false) { $err = true; }
if ( $err ) {
$this->mysqli->rollback();
} else {
$this->mysqli->commit();
}
}catch(Exception $e){
$this->mysqli->rollback();
throw $e;
}
}
ну и попутный вопрос - как правильно инсертить сразу 2 таблицы связанных по авто инкрементирумемо полю
|
|
3
vde69
04.01.20
✎
12:21
|
блин, у меня MySQL вообще не поддерживает транзакции
SHOW ENGINES
CSV,MRG_MYISAM,MEMORY,MyISAM
вот теперь буду думать :(
|
|