public static function GetChannelsById($ids)
{
$logger = \Swiftriver\Core\Setup::GetLogger();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [Method Invoked]", \PEAR_LOG_DEBUG);
$channels = array();
if (!\is_array($ids) || count($ids) < 1) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [No ids supplied]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [Method finished]", \PEAR_LOG_DEBUG);
return $channels;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Building queries]", \PEAR_LOG_DEBUG);
$sql = "CALL SC_GetChannelByChannelIds ( :ids )";
$idsArray = "(";
foreach ($ids as $id) {
$idsArray .= "'{$id}',";
}
$idsArray = \rtrim($idsArray, ",") . ")";
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Building queries]", \PEAR_LOG_DEBUG);
try {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Connecting via PDO]", \PEAR_LOG_DEBUG);
$db = self::PDOConnection();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Connecting via PDO]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Preparing PDO statement]", \PEAR_LOG_DEBUG);
$statement = $db->prepare($sql);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Preparing PDO statement]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Executing PDO statement]", \PEAR_LOG_DEBUG);
$result = $statement->execute(array(":ids" => $idsArray));
if ($result === false) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [An Exception was thrown by the PDO framwork]", \PEAR_LOG_ERR);
$errorInfo = $statement->errorInfo();
$errorMessage = $errorInfo[2];
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [{$errorMessage}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Executing PDO statement]", \PEAR_LOG_DEBUG);
if (isset($result) && $result != null && $result !== 0) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Looping over results]", \PEAR_LOG_DEBUG);
foreach ($statement->fetchAll() as $row) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [START: Constructing Channel Object from json]", \PEAR_LOG_DEBUG);
$json = $row['json'];
$channel = \Swiftriver\Core\ObjectModel\ObjectFactories\ChannelFactory::CreateChannelFromJSON($json);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Constructing Channel Object from json]", \PEAR_LOG_DEBUG);
$channels[] = $channel;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [END: Looping over results]", \PEAR_LOG_DEBUG);
}
$db = null;
} catch (\PDOException $e) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [An Exception was thrown:]", \PEAR_LOG_ERR);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [{$e}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetChannelsById [Method Finished]", \PEAR_LOG_DEBUG);
return $channels;
}