Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP回滚方法失败_Php_Mysql_Rollback - Fatal编程技术网

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。对于一个查询,回滚它是没有意义的。我知道这一点,但不幸的是再次失败:)!