Mam InnoDB.
Czyli teraz mam tak
$conn = self::getConnection();
$conn->autocommit(false);
$SQL = "UPDATE fr_product SET name='".$name."', image='".$image."',description='".$description."',price='".$price."',code='".$code."',seo_title='".$seo_title."',seo_keywords='".$seo_keywords."',seo_description='".$seo_description."',newest='".$newest."',recommended='".$recommended."',promotion='".$promotion."',image_promotion='".$image_promotion."',promotion_for_home='".$promotion_main."',products_category='".$category."' WHERE id='".$id."'";
$result = $conn->query($SQL);
$err_f = false;
foreach($filters as $k=>$f){
if(!$result_filter = $conn->query("UPDATE fr_product_filter SET filter_valuee='".$f."' WHERE product_code='".$code."' AND filter_id='".$k."'")){
$err_f=true;
}
}
$conn->commit();
if($result && $err_f==false){
echo '<div class="alert alert-success" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Operacja wykonana poprawnie!</div>'; }else{
$conn->rollback();
echo '<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>Nieoczekiwany błąd. </div>';
}
$conn->close();
break;
Ok i teraz wydaje mi się że nie działa
$conn->rollback();
ponieważ
$result = $conn->query($SQL);
wykonuje się poprawnie (zmiana w bazie) a
if(!$result_filter = $conn->query("UPDATE fr_product_filter SET filter_valuee='".$f."' WHERE product_code='".$code."' AND filter_id='".$k."'")){
$err_f=true;
}
rzuca błąd w wchodzi w else
$conn->rollback();
echo '<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>Nieoczekiwany błąd. </div>';
ale to pierwsze zapytanie nie jest cofnięte.
Jakieś pomysły?
------------------------------
edit
OK działa
$conn = self::getConnection();
$conn->autocommit(false);
$SQL = "UPDATE fr_product SET name='".$name."', image='".$image."',description='".$description."',price='".$price."',code='".$code."',seo_title='".$seo_title."',seo_keywords='".$seo_keywords."',seo_description='".$seo_description."',newest='".$newest."',recommended='".$recommended."',promotion='".$promotion."',image_promotion='".$image_promotion."',promotion_for_home='".$promotion_main."',products_category='".$category."' WHERE id='".$id."'";
$result = $conn->query($SQL);
$err_f = false;
foreach($filters as $k=>$f){
if(!$result_filter = $conn->query("UPDATE fr_product_filter SET filter_valuee='".$f."' WHERE product_code='".$code."' AND filter_id='".$k."'")){
$err_f=true;
}
}
if($result && $err_f==false){
[b] $conn->commit();[/b]
echo '<div class="alert alert-success" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>Operacja wykonana poprawnie!</div>'; }else{
$conn->rollback();
echo '<div class="alert alert-danger" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>Nieoczekiwany błąd. </div>';
}
$conn->close();
break;