# give/4.16.9/src/Framework/QueryBuilder/QueryBuilder.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.9. 68 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.9/code/src/Framework/QueryBuilder/QueryBuilder.php
- Raw: https://pluginprobe.com/plugins/give/4.16.9/raw/src/Framework/QueryBuilder/QueryBuilder.php
- Modified: 2025-03-31T19:17:16+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.9/code/src/Framework/QueryBuilder/QueryBuilder.php#L10-L20`.

```php
<?php

namespace Give\Framework\QueryBuilder;

use Give\Framework\QueryBuilder\Concerns\Aggregate;
use Give\Framework\QueryBuilder\Concerns\CRUD;
use Give\Framework\QueryBuilder\Concerns\FromClause;
use Give\Framework\QueryBuilder\Concerns\GroupByStatement;
use Give\Framework\QueryBuilder\Concerns\HavingClause;
use Give\Framework\QueryBuilder\Concerns\InsertInto;
use Give\Framework\QueryBuilder\Concerns\JoinClause;
use Give\Framework\QueryBuilder\Concerns\LimitStatement;
use Give\Framework\QueryBuilder\Concerns\MetaQuery;
use Give\Framework\QueryBuilder\Concerns\OffsetStatement;
use Give\Framework\QueryBuilder\Concerns\OrderByStatement;
use Give\Framework\QueryBuilder\Concerns\SelectStatement;
use Give\Framework\QueryBuilder\Concerns\TablePrefix;
use Give\Framework\QueryBuilder\Concerns\UnionOperator;
use Give\Framework\QueryBuilder\Concerns\WhereClause;

/**
 * @since 2.19.0
 */
class QueryBuilder
{
    use Aggregate;
    use CRUD;
    use FromClause;
    use GroupByStatement;
    use HavingClause;
    use JoinClause;
    use LimitStatement;
    use MetaQuery;
    use OffsetStatement;
    use OrderByStatement;
    use SelectStatement;
    use TablePrefix;
    use UnionOperator;
    use WhereClause;
    use InsertInto;

    /**
     * @return string
     */
    public function getSQL()
    {
        $sql = array_merge(
            $this->getSelectSQL(),
            $this->getFromSQL(),
            $this->getJoinSQL(),
            $this->getWhereSQL(),
            $this->getGroupBySQL(),
            $this->getHavingSQL(),
            $this->getOrderBySQL(),
            $this->getLimitSQL(),
            $this->getOffsetSQL(),
            $this->getUnionSQL()
        );

        // Trim double spaces added by DB::prepare
        return str_replace(
            ['   ', '  '],
            ' ',
            implode(' ', $sql)
        );
    }
}

```
