本文整理汇总了PHP中DBObjectSet::fetch方法的典型用法代码示例。如果您正苦于以下问题:PHP DBObjectSet::fetch方法的具体用法?PHP DBObjectSet::fetch怎么用?PHP DBObjectSet::fetch使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DBObjectSet
的用法示例。
在下文中一共展示了DBObjectSet::fetch方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: FilterByContext
try {
$oDefinitionFilter = DBObjectSearch::FromOQL($oAuditCategory->Get('definition_set'));
FilterByContext($oDefinitionFilter, $oAppContext);
$aObjectsWithErrors = array();
if (!empty($currentOrganization)) {
if (MetaModel::IsValidFilterCode($oDefinitionFilter->GetClass(), 'org_id')) {
$oDefinitionFilter->AddCondition('org_id', $currentOrganization, '=');
}
}
$aResults = array();
$oDefinitionSet = new CMDBObjectSet($oDefinitionFilter);
$iCount = $oDefinitionSet->Count();
$oRulesFilter = new DBObjectSearch('AuditRule');
$oRulesFilter->AddCondition('category_id', $oAuditCategory->GetKey(), '=');
$oRulesSet = new DBObjectSet($oRulesFilter);
while ($oAuditRule = $oRulesSet->fetch()) {
$aRow = array();
$aRow['description'] = $oAuditRule->GetName();
if ($iCount == 0) {
// nothing to check, really !
$aRow['nb_errors'] = "<a href=\"audit.php?operation=errors&category=" . $oAuditCategory->GetKey() . "&rule=" . $oAuditRule->GetKey() . "\">0</a>";
$aRow['percent_ok'] = '100.00';
$aRow['class'] = GetReportColor($iCount, 0);
} else {
try {
$oFilter = GetRuleResultFilter($oAuditRule->GetKey(), $oDefinitionFilter, $oAppContext);
$aErrors = $oFilter->ToDataArray(array('id'));
$iErrorsCount = count($aErrors);
foreach ($aErrors as $aErrorRow) {
$aObjectsWithErrors[$aErrorRow['id']] = true;
}
示例2: GetObjectByColumn
public static function GetObjectByColumn($sClass, $sAttCode, $value, $bMustBeFoundUnique = true)
{
if (!isset(self::$m_aCacheObjectByColumn[$sClass][$sAttCode][$value])) {
self::_check_subclass($sClass);
$oObjSearch = new DBObjectSearch($sClass);
$oObjSearch->AddCondition($sAttCode, $value, '=');
$oSet = new DBObjectSet($oObjSearch);
if ($oSet->Count() == 1) {
self::$m_aCacheObjectByColumn[$sClass][$sAttCode][$value] = $oSet->fetch();
} else {
if ($bMustBeFoundUnique) {
throw new CoreException('Failed to get an object by column', array('class' => $sClass, 'attcode' => $sAttCode, 'value' => $value, 'matches' => $oSet->Count()));
}
self::$m_aCacheObjectByColumn[$sClass][$sAttCode][$value] = null;
}
}
return self::$m_aCacheObjectByColumn[$sClass][$sAttCode][$value];
}
示例3: GetProperty
public static function GetProperty($sName, $default = null)
{
try {
$oSearch = DBObjectSearch::FromOQL('SELECT DBProperty WHERE name = :name');
$oSet = new DBObjectSet($oSearch, array(), array('name' => $sName));
$iCount = $oSet->Count();
if ($iCount == 0) {
//throw new CoreException('unknown db property', array('name' => $sName));
$sValue = $default;
} elseif ($iCount == 1) {
$oProp = $oSet->fetch();
$sValue = $oProp->Get('value');
} else {
// $iCount > 1
// Houston...
throw new CoreException('duplicate db property', array('name' => $sName, 'count' => $iCount));
}
} catch (MySQLException $e) {
// This might be because the table could not be found,
// let's check it and discard silently if this is really the case
if (self::IsInstalled()) {
throw $e;
}
$sValue = $default;
}
return $sValue;
}
示例4: FindUser
/**
* Find a user based on its login and its type of authentication
* @param string $sLogin Login/identifier of the user
* @param string $sAuthentication Type of authentication used: internal|external|any
* @return User The found user or null
*/
protected static function FindUser($sLogin, $sAuthentication = 'any')
{
if ($sAuthentication == 'any') {
$oUser = self::FindUser($sLogin, 'internal');
if ($oUser == null) {
$oUser = self::FindUser($sLogin, 'external');
}
} else {
if (!isset(self::$m_aCacheUsers)) {
self::$m_aCacheUsers = array('internal' => array(), 'external' => array());
}
if (!isset(self::$m_aCacheUsers[$sAuthentication][$sLogin])) {
switch ($sAuthentication) {
case 'external':
$sBaseClass = 'UserExternal';
break;
case 'internal':
$sBaseClass = 'UserInternal';
break;
default:
echo "<p>sAuthentication = {$sAuthentication}</p>\n";
assert(false);
// should never happen
}
$oSearch = DBObjectSearch::FromOQL("SELECT {$sBaseClass} WHERE login = :login");
$oSet = new DBObjectSet($oSearch, array(), array('login' => $sLogin));
$oUser = $oSet->fetch();
self::$m_aCacheUsers[$sAuthentication][$sLogin] = $oUser;
}
$oUser = self::$m_aCacheUsers[$sAuthentication][$sLogin];
}
return $oUser;
}
示例5: DoExecute
protected function DoExecute()
{
CMDBSource::Query('START TRANSACTION');
//CMDBSource::Query('ROLLBACK'); automatique !
////////////////////////////////////////////////////////////////////////////////
// Set the stage
//
$oServer = MetaModel::NewObject('Server');
$oServer->Set('name', 'unit test linkset');
$oServer->Set('org_id', 3);
$oServer->DBInsert();
$iServer = $oServer->GetKey();
$oTypes = new DBObjectSet(DBObjectSearch::FromOQL('SELECT NetworkDeviceType WHERE name = "Router"'));
$oType = $oTypes->fetch();
$oDevice = MetaModel::NewObject('NetworkDevice');
$oDevice->Set('name', 'test device A');
$oDevice->Set('org_id', 3);
$oDevice->Set('networkdevicetype_id', $oType->GetKey());
$oDevice->DBInsert();
$iDev1 = $oDevice->GetKey();
$oDevice = MetaModel::NewObject('NetworkDevice');
$oDevice->Set('name', 'test device B');
$oDevice->Set('org_id', 3);
$oDevice->Set('networkdevicetype_id', $oType->GetKey());
$oDevice->DBInsert();
$iDev2 = $oDevice->GetKey();
////////////////////////////////////////////////////////////////////////////////
// Scenarii
//
$aScenarii = array(array('description' => 'Add the first item', 'links' => array(array('networkdevice_id' => $iDev1, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => '')), 'expected-res' => array("{$iDev1}, test device A, unit test linkset, , , downlink, test device A"), 'history_added' => 1, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Modify the unique item', 'links' => array(array('networkdevice_id' => $iDev1, 'connectableci_id' => $iServer, 'network_port' => 'devTagada', 'device_port' => '')), 'expected-res' => array("{$iDev1}, test device A, unit test linkset, devTagada, , downlink, test device A"), 'history_added' => 1, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'Modify again the original item and add a second item', 'links' => array(array('networkdevice_id' => $iDev1, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => ''), array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => '')), 'expected-res' => array("{$iDev1}, test device A, unit test linkset, , , downlink, test device A", "{$iDev2}, test device B, unit test linkset, , , downlink, test device B"), 'history_added' => 2, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'No change, the links are added in the reverse order', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => ''), array('networkdevice_id' => $iDev1, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => '')), 'expected-res' => array("{$iDev1}, test device A, unit test linkset, , , downlink, test device A", "{$iDev2}, test device B, unit test linkset, , , downlink, test device B"), 'history_added' => 0, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Change on attribute on both links at the same time', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'PortDev B', 'device_port' => ''), array('networkdevice_id' => $iDev1, 'connectableci_id' => $iServer, 'network_port' => 'PortDev A', 'device_port' => '')), 'expected-res' => array("{$iDev1}, test device A, unit test linkset, PortDev A, , downlink, test device A", "{$iDev2}, test device B, unit test linkset, PortDev B, , downlink, test device B"), 'history_added' => 2, 'history_removed' => 2, 'history_modified' => 0), array('description' => 'Removing A', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'PortDev B', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, PortDev B, , downlink, test device B"), 'history_added' => 0, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'Adding B again - with a different port (duplicate!)', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_123', 'device_port' => ''), array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_456', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, port_123, , downlink, test device B", "{$iDev2}, test device B, unit test linkset, port_456, , downlink, test device B"), 'history_added' => 2, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'No change (creating a set with the reloaded links, like in the UI)', 'links' => array(array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer} AND network_port = 'port_123'", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_123', 'device_port' => ''), array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer} AND network_port = 'port_456'", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_456', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, port_123, , downlink, test device B", "{$iDev2}, test device B, unit test linkset, port_456, , downlink, test device B"), 'history_added' => 0, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Change an attribute on one link (based on reloaded links, like in the UI)', 'links' => array(array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer} AND network_port = 'port_123'", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_123_modified', 'device_port' => ''), array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer} AND network_port = 'port_456'", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_456', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, port_123_modified, , downlink, test device B", "{$iDev2}, test device B, unit test linkset, port_456, , downlink, test device B"), 'history_added' => 0, 'history_removed' => 0, 'history_modified' => 1), array('description' => 'Remove the second link (set based on reloaded links, like in the UI)', 'links' => array(array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer} AND network_port = 'port_123_modified'", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'port_123_modified', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, port_123_modified, , downlink, test device B"), 'history_added' => 0, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'Remove all', 'links' => array(), 'expected-res' => array(), 'history_added' => 0, 'history_removed' => 1, 'history_modified' => 0), array('description' => 'Create one link from scratch, no port, to prepare for the next test case', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, , , downlink, test device B"), 'history_added' => 1, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Create a second link from scratch, pointing to the same server and no port, to prepare for the next test case', 'links' => array(array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer}", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => ''), array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'X', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, , , downlink, test device B", "{$iDev2}, test device B, unit test linkset, X, , downlink, test device B"), 'history_added' => 1, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Create a second link from scratch, pointing to the same server and no port, to prepare for the next test case', 'links' => array(array('id' => "SELECT lnkConnectableCIToNetworkDevice WHERE networkdevice_id = {$iDev2} AND connectableci_id = {$iServer}", 'networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => '', 'device_port' => ''), array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'X', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, , , downlink, test device B", "{$iDev2}, test device B, unit test linkset, X, , downlink, test device B"), 'history_added' => 1, 'history_removed' => 0, 'history_modified' => 0), array('description' => 'Device B twice (same characteristics) - known issue #1145', 'links' => array(array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'portX', 'device_port' => ''), array('networkdevice_id' => $iDev2, 'connectableci_id' => $iServer, 'network_port' => 'portX', 'device_port' => '')), 'expected-res' => array("{$iDev2}, test device B, unit test linkset, portX, , downlink, test device B", "{$iDev2}, test device B, unit test linkset, portX, , downlink, test device B"), 'history_added' => 1, 'history_removed' => 0, 'history_modified' => 0));
foreach ($aScenarii as $aScenario) {
echo "<h4>" . $aScenario['description'] . "</h4>\n";
$oChange = MetaModel::NewObject("CMDBChange");
$oChange->Set("date", time());
$oChange->Set("userinfo", CMDBChange::GetCurrentUserName());
$oChange->Set("origin", 'custom-extension');
$oChange->DBInsert();
CMDBObject::SetCurrentChange($oChange);
$iChange = $oChange->GetKey();
// Prepare set
$oLinkset = DBObjectSet::FromScratch('lnkConnectableCIToNetworkDevice');
foreach ($aScenario['links'] as $aLinkData) {
if (array_key_exists('id', $aLinkData)) {
$sOQL = $aLinkData['id'];
$oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL));
$oLink1 = $oSet->Fetch();
if (!is_object($oLink1)) {
throw new Exception('Failed to find the lnkConnectableCIToNetworkDevice: ' . $sOQL);
}
} else {
$oLink1 = MetaModel::NewObject('lnkConnectableCIToNetworkDevice');
}
foreach ($aLinkData as $sAttCode => $value) {
if ($sAttCode == 'id') {
continue;
}
$oLink1->Set($sAttCode, $value);
}
$oLinkset->AddObject($oLink1);
}
// Write
$oServer = MetaModel::GetObject('Server', $iServer);
$oServer->Set('networkdevice_list', $oLinkset);
$oServer->DBWrite();
// Check Results
$bFoundIssue = false;
$oServer = MetaModel::GetObject('Server', $iServer);
$oLinkset = $oServer->Get('networkdevice_list');
$aRes = $this->StandardizedDump($oLinkset, 'connectableci_id');
$sRes = var_export($aRes, true);
echo "Found: <pre>" . $sRes . "</pre>\n";
$sExpectedRes = var_export($aScenario['expected-res'], true);
if ($sRes != $sExpectedRes) {
$bFoundIssue = true;
echo "NOT COMPLIANT!!! Expecting: <pre>" . $sExpectedRes . "</pre>\n";
}
// Check History
$aQueryParams = array('change' => $iChange, 'objclass' => get_class($oServer), 'objkey' => $oServer->GetKey());
$oAdded = new DBObjectSet(DBSearch::FromOQL("SELECT CMDBChangeOpSetAttributeLinksAddRemove WHERE objclass = :objclass AND objkey = :objkey AND change = :change AND type = 'added'"), array(), $aQueryParams);
echo "added: " . $oAdded->Count() . "<br/>\n";
if ($aScenario['history_added'] != $oAdded->Count()) {
$bFoundIssue = true;
echo "NOT COMPLIANT!!! Expecting: " . $aScenario['history_added'] . "<br/>\n";
}
$oRemoved = new DBObjectSet(DBSearch::FromOQL("SELECT CMDBChangeOpSetAttributeLinksAddRemove WHERE objclass = :objclass AND objkey = :objkey AND change = :change AND type = 'removed'"), array(), $aQueryParams);
echo "removed: " . $oRemoved->Count() . "<br/>\n";
if ($aScenario['history_removed'] != $oRemoved->Count()) {
$bFoundIssue = true;
echo "NOT COMPLIANT!!! Expecting: " . $aScenario['history_removed'] . "<br/>\n";
}
$oModified = new DBObjectSet(DBSearch::FromOQL("SELECT CMDBChangeOpSetAttributeLinksTune WHERE objclass = :objclass AND objkey = :objkey AND change = :change"), array(), $aQueryParams);
echo "modified: " . $oModified->Count() . "<br/>\n";
if ($aScenario['history_modified'] != $oModified->Count()) {
$bFoundIssue = true;
echo "NOT COMPLIANT!!! Expecting: " . $aScenario['history_modified'] . "<br/>\n";
}
if ($bFoundIssue) {
throw new Exception('Stopping on failed scenario');
}
}
//.........这里部分代码省略.........