PHP回滚方法失败
我已经尝试了这段代码,不幸的是回滚方法失败了! 提前感谢PHP回滚方法失败,php,mysql,rollback,Php,Mysql,Rollback,我已经尝试了这段代码,不幸的是回滚方法失败了! 提前感谢 $bash = new mysqli('localhost', 'root', '','dbastegoi'); $bash->autocommit(FALSE); echo 'timologio'; $r =$bash->query("INSERT INTO tbparastatika (strArithmos, fkERGO, strPROMITH, sngCOST, intTYPOS, intDRASH) VALUES
$bash = new mysqli('localhost', 'root', '','dbastegoi');
$bash->autocommit(FALSE);
echo 'timologio';
$r =$bash->query("INSERT INTO tbparastatika (strArithmos, fkERGO, strPROMITH, sngCOST, intTYPOS, intDRASH) VALUES ('1','1001','123123123',800138,1,1)");
//ΕΙΣΑΓΩΓΗ ΤΙΜΟΛΟΓΙΟΥ
$i = $bash->insert_id;
ECHO PHP_EOL;
echo 'dapanh';
try {
$r =$bash->query("INSERT INTO tbdapanes_stegash (idPARASTATnIKO, sngCOST, fkDIAMERISMA, intMONTH) VALUES ($i,100,1,1)");
echo $r;
} catch (Exception $e) {
echo 'error2';
}
$bash->commit();
$bash->rollback();
//$SYNDESH->commit();
//$SYNDESH->rollback();
$bash->close();
您不能先进行提交,然后再进行回退。如果查询运行时没有错误,则必须进行提交;如果出现错误,则必须进行回滚:
try {
$r =$bash->query("INSERT INTO tbdapanes_stegash (idPARASTATnIKO, sngCOST, fkDIAMERISMA, intMONTH) VALUES ($i,100,1,1)");
echo $r;
$bash->commit();
} catch (Exception $e) {
echo 'error2';
$bash->rollback();
}
我应该为每个查询使用catch吗?@取决于您的事务应该是什么。在上面的代码段中,您认为我应该在第一次查询时使用rollback吗?@λζαρρρθθτσκαιτ∑κικς如果您有一个以上语句的事务,回滚才有意义。rollack将在您调用rollback之前成功执行且未提交的所有查询回滚到ack。对于一个查询,回滚它是没有意义的。我知道这一点,但不幸的是再次失败:)!