Db::select PHP Method

select() public method

查找记录
public select ( array $options = [] ) : array
$options array 表达式
return array
    public function select($options = array())
    {
        if (isset($options['page'])) {
            // 根据页数计算limit
            list($page, $listRows) = explode(',', $options['page']);
            $listRows = $listRows ? $listRows : (isset($options['limit']) && is_numeric($options['limit']) ? $options['limit'] : 20);
            $offset = $listRows * ((int) $page - 1);
            $options['limit'] = $offset . ',' . $listRows;
        }
        $sql = str_replace(array('%TABLE%', '%DISTINCT%', '%FIELDS%', '%JOIN%', '%WHERE%', '%GROUP%', '%HAVING%', '%ORDER%', '%LIMIT%'), array($this->parseTable($options['table']), $this->parseDistinct(isset($options['distinct']) ? $options['distinct'] : false), $this->parseField(isset($options['field']) ? $options['field'] : '*'), $this->parseJoin(isset($options['join']) ? $options['join'] : ''), $this->parseWhere(isset($options['where']) ? $options['where'] : ''), $this->parseGroup(isset($options['group']) ? $options['group'] : ''), $this->parseHaving(isset($options['having']) ? $options['having'] : ''), $this->parseOrder(isset($options['order']) ? $options['order'] : ''), $this->parseLimit(isset($options['limit']) ? $options['limit'] : '')), $this->selectSql);
        $sql .= $this->parseLock(isset($options['lock']) ? $options['lock'] : false);
        return $this->query($sql);
    }

Usage Example

Example #1
1
 public function getUsers($restId)
 {
     $db = new Db();
     $table = "rest" . $restId . "_users";
     $checkRest = restExists($table);
     if ($checkRest != true) {
         return $checkRest;
     }
     $local_query = "SELECT * FROM `{$table}`";
     $result = $db->select($local_query);
     $userCount = count($result);
     $configurationTable = "rest" . $restId . "_userConfigurations";
     $configurationMappingTable = "rest" . $restId . "_userConfigurationMapping";
     $userTable = "rest" . $restId . "_users";
     $local_query = "SELECT M.`userID`,M.`configurationID`, C.`configurationName`,C.`configurationDisplayText`, C.`configurationType`, \n\t\tC.`configurationTag`, C.`configurationValueBinary`, C.`configurationValueText`, C.`configurationValueDecimal`, C.`comments`,M.`isAllowed` FROM \n\t\t`{$configurationMappingTable}` AS M INNER JOIN `{$configurationTable}` AS C ON `M`.`configurationID` = `C`.`configurationID`  \n\t\tORDER BY   M.`userID`, M.`configurationID`";
     $resultConfiguration = $db->select($local_query);
     $configurationCount = count($resultConfiguration);
     for ($i = 0; $i < $userCount; $i++) {
         $result[$i]['Permissions'] = array();
         for ($j = 0; $j < $configurationCount; $j++) {
             if ($result[$i]['ID'] == $resultConfiguration[$j]['userID']) {
                 array_push($result[$i]['Permissions'], $resultConfiguration[$j]);
             }
         }
     }
     for ($i = 0; $i < $userCount; $i++) {
         for ($j = 0; $j <= count($result[$i]['Permissions']); $j++) {
             unset($result[$i]['Permissions'][$j]['userID']);
         }
     }
     $response = array();
     $response["Users"] = $result;
     return $response;
 }
All Usage Examples Of Db::select