403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.22.241.171
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/7779/task/7779/cwd/plugins/give/src/Framework/QueryBuilder/Concerns/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/7779/task/7779/cwd/plugins/give/src/Framework/QueryBuilder/Concerns/SelectStatement.php
<?php

namespace Give\Framework\QueryBuilder\Concerns;

use Give\Framework\Database\DB;
use Give\Framework\QueryBuilder\Clauses\RawSQL;
use Give\Framework\QueryBuilder\Clauses\Select;

/**
 * @since 2.19.0
 */
trait SelectStatement
{
    /**
     * @var Select[]|RawSQL[]
     */
    protected $selects = [];

    /**
     * @var bool
     */
    protected $distinct = false;

    /**
     * @var bool
     */
    private $includeSelectKeyword = true;

    /**
     * @param  array  $columns
     *
     * @return $this
     */
    public function select(...$columns)
    {
        $selects = array_map(function ($select) {
            if (is_array($select)) {
                list($column, $alias) = $select;

                return new Select($column, $alias);
            }

            return new Select($select);
        }, $columns);

        $this->selects = array_merge($this->selects, $selects);

        return $this;
    }

    /**
     * Add raw SQL SELECT statement
     *
     * @param  string  $sql
     * @param ...$args
     */
    public function selectRaw($sql, ...$args)
    {
        $this->selects[] = new RawSQL($sql, $args);

        return $this;
    }


    /**
     * Select distinct
     *
     * @return $this
     */
    public function distinct()
    {
        $this->distinct = true;

        return $this;
    }

    /**
     * @return string[]
     */
    protected function getSelectSQL()
    {
        // Select all by default
        if (empty($this->selects)) {
            $this->select('*');
        }

        $selects = [];

        foreach ($this->selects as $i => $select) {
            if ($select instanceof RawSQL) {
                if ($i === 0) {
                    // If the first element is an instance of RawSQL
                    // then we don't need the starting SELECT keyword because we assume that the dev will include that in RawSQL
                    $this->includeSelectKeyword = false;
                }
                $selects[] = $select->sql;
                continue;
            }

            if ($select->alias) {
                $selects[] = DB::prepare(
                    '%1s AS %2s',
                    $select->column,
                    $select->alias
                );

                continue;
            }

            $selects[] = DB::prepare('%1s', $select->column);
        }

        $selectStatements = implode(', ', $selects);

        if ($this->includeSelectKeyword) {
            $keyword = 'SELECT ';

            if ($this->distinct) {
                $keyword .= 'DISTINCT ';
            }

            return [$keyword . $selectStatements];
        }

        return [$selectStatements];
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit