-
Notifications
You must be signed in to change notification settings - Fork 1
Example
Maruwan Adisendja edited this page Apr 4, 2018
·
3 revisions
##1. Using DBCommand transaction feature
$DBQueryObj = new DBQuery($host, $username, $password, $database_name);
$inputObj1 = new MagicInput();
$inputObj1->setInputsDefinition([
['first_name', 's', true, ''],
['last_name', 's', true, ''],
['email', 'e', true, ''],
['gender', 's', false, ''],
['id', 'i', true, ''],
]);
/* Set in-line/default value */
$inputObj1->first_name = "Cazzie";
$inputObj1->last_name = "Lingwood";
$inputObj1->email = "clingwood1@cpanel.net";
$inputObj1->id = 1;
$inputObj2 = new MagicInput();
$inputObj2->setInputsDefinition([
['first_name', 's', true, ''],
['last_name', 's', true, ''],
['email', 'e', true, ''],
['gender', 's', false, ''],
['id', 'i', true, ''],
]);
/* Set in-line/default value */
$inputObj2->first_name = "Blair";
$inputObj2->last_name = "Erridge";
$inputObj2->email = "berridge0@ezinearticles.com";
$inputObj2->id = 2;
if ($inputObj1->isInputsComplied()) {
if ($inputObj2->isInputsComplied()) {
$DBCmd = new DBCommand($DBQueryObj);
$DBCmd->enableTransaction();
/* Set and execute 1st query */
$DBCmd->setUPDATEtoTable('friend');
$DBCmd->importInputColumns($inputObj1, ['id']);
$DBCmd->addConditionStatement('id', $inputObj1->id, IFieldType::INTEGER_TYPE);
$DBCmd->executeQueryCommand();
/* Set and execute 2nd query */
$DBCmd->setUPDATEtoTable('friend');
$DBCmd->importInputColumns($inputObj2, ['id']);
$DBCmd->addConditionStatement('id', $inputObj2->id, IFieldType::INTEGER_TYPE);
$DBCmd->executeQueryCommand();
$tstatus = $DBCmd->commitTransaction();
$DBCmd->disableTransaction();
/*
* $tstatus return real true on success commit
* $tstatus return array of error object on failed commit
* Note: true===true (real true)
*/
if ($tstatus === true) {
echo 'Transaction successful';
} else {
echo '<pre>';
var_dump($tstatus);
}
} else {
echo json_encode($inputObj2->getNonCompliedInputList());
}
} else {
echo json_encode($inputObj->getNonCompliedInputList());
}
Mandryn Team 2018