I가 내가 $ 문장 2에 오류를 강제하고 있고 내가 출력으로 '2 실패'얻을 코드를 실행하지만 때 문제가 $입니다PHP으로 ADOdb는 존중하지 AUTOCOMMIT = 거짓
<?php
include("adodb5/adodb.inc.php"); // includes the adodb library
$db = NewADOConnection('mysql'); // A new connection
$conn = $db->Connect("localhost", "test", "password", "test_db");
if(!$conn){
echo 'failed to connect'; die();
}else{
$db->autoCommit = false;
$db->StartTrans();
$statement1 = $db->Prepare("insert into table1 (cod) values (1)");
$ok1 = $db->Execute($statement1);
$statement2 = $db->Prepare("insert into table2AAAAA (cod) values (1)");
$ok2 = $db->Execute($statement2);
$statement3 = $db->Prepare("insert into table3 (cod) values (1)");
$ok3 = $db->Execute($statement2);
if(!$ok1){
echo 'Failed 1';
$db->FailTrans();
}else if(!$ok2){
echo 'Failed 2';
$db->FailTrans();
}else if(!$ok3){
echo 'Failed 3';
$db->FailTrans();
}else if($ok1 && $ok2 && $ok3){ //ONLY IF ALL ARE OK THEN COMMIT
$db->CompleteTrans();
}
}
?>
다음 코드 statement1이 실행되고 레코드가 DB에 삽입됩니다.
내가 원한 것은 모든 문장이 실패하지 않는 경우에만 문장을 저지르는 것이다. $ db-> autoCommit = false; - 일하는 것 같지 않아?
해결 방법을 알려 주시면 감사하겠습니다. 감사
$ AUTOCOMMIT 변수가 "수정하지 않는 개인"것으로 지적된다