public function getInstalledPkgs(Host &$host, $orderBy, $pageSize, $pageNum)
 {
     $sql = "select pkg.id, pkg.name, pkg.version, pkg.release, pkg.arch\n        from InstalledPkg inst inner join Pkg pkg on inst.pkgId=pkg.id";
     $where = " where inst.hostId={$host->getId()}";
     switch ($orderBy) {
         case "arch":
             $sql .= "{$where} order by pkg.arch";
             break;
         case "version":
             $sql .= "{$where} order by pkg.version, pkg.release";
             break;
         default:
             // oderByName by default
             $sql .= "{$where} order by pkg.name";
     }
     if ($pageSize != -1 && $pageNum != -1) {
         $offset = $pageSize * $pageNum;
         $sql .= " limit {$offset},{$pageSize}";
     }
     $installedPkgsDb =& $this->db->queryToMultiRow($sql);
     # Create objects
     $installedPkgs = array();
     if ($installedPkgsDb != null) {
         foreach ($installedPkgsDb as $installedPkgDb) {
             $pkg = new Pkg();
             $pkg->setId($installedPkgDb["id"]);
             $pkg->setName($installedPkgDb["name"]);
             $pkg->setVersion($installedPkgDb["version"]);
             $pkg->setRelease($installedPkgDb["release"]);
             $pkg->setArch($installedPkgDb["arch"]);
             array_push($installedPkgs, $pkg);
         }
     }
     return $installedPkgs;
 }
Beispiel #2
0
 public function create(Pkg &$pkg)
 {
     $this->db->query("insert into Pkg set\n          name='" . $this->db->escape($pkg->getName()) . "',\n          version='" . $this->db->escape($pkg->getVersion()) . "',\n          arch='" . $this->db->escape($pkg->getArch()) . "',\n          `release`='" . $this->db->escape($pkg->getRelease()) . "'");
     # Set the newly assigned id
     $pkg->setId($this->db->getLastInsertedId());
 }