QueryCustom::withBindParams()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Adrian Dumitru
5
 * Date: 7/27/2017
6
 * Time: 10:39 PM
7
 */
8
9
namespace Qpdb\QueryBuilder\Statements;
10
11
12
use Qpdb\PdoWrapper\PdoWrapperService;
13
use Qpdb\QueryBuilder\Dependencies\QueryStructure;
14
use Qpdb\QueryBuilder\QueryBuild;
15
16
class QueryCustom implements QueryStatementInterface
17
{
18
19
20
	/**
21
	 * @var string
22
	 */
23
	protected $statement = QueryStatement::QUERY_STATEMENT_CUSTOM;
24
25
	/**
26
	 * @var QueryBuild
27
	 */
28
	protected $queryBuild;
29
30
	/**
31
	 * @var QueryStructure
32
	 */
33
	protected $queryStructure;
34
35
	/**
36
	 * @var array
37
	 */
38
	protected $usedInstanceIds = [];
39
40
	/**
41
	 * @var string
42
	 */
43
	protected $tablePrefix;
44
45
46
	/**
47
	 * QueryCustom constructor.
48
	 * @param QueryBuild $queryBuild
49
	 * @param string $query
50
	 * @throws \Qpdb\QueryBuilder\Dependencies\QueryException
51
	 */
52
	public function __construct( QueryBuild $queryBuild, $query = '' )
53
	{
54
		$this->queryBuild = $queryBuild;
55
		$this->queryStructure = new QueryStructure();
56
		$this->queryStructure->setElement( QueryStructure::STATEMENT, $this->statement );
57
		$this->queryStructure->setElement( QueryStructure::QUERY_TYPE, $this->queryBuild->getType() );
58
		$this->queryStructure->setElement( QueryStructure::QUERY_STRING, $query );
59
	}
60
61
	/**
62
	 * @param array $params
63
	 * @return $this
64
	 * @throws \Qpdb\QueryBuilder\Dependencies\QueryException
65
	 */
66
	public function withBindParams( array $params = [] )
67
	{
68
		$this->queryStructure->replaceElement( QueryStructure::BIND_PARAMS, $params );
69
70
		return $this;
71
	}
72
73
	/**
74
	 * @param bool|int $replacement
75
	 * @return mixed
76
	 */
77
	public function getSyntax( $replacement = self::REPLACEMENT_NONE )
78
	{
79
		return $this->queryStructure->getElement( QueryStructure::QUERY_STRING );
80
	}
81
82
	/**
83
	 * @return array
84
	 */
85
	public function getBindParams()
86
	{
87
		return $this->queryStructure->getElement( QueryStructure::BIND_PARAMS );
88
	}
89
90
	/**
91
	 * @return bool|mixed|\PDOStatement
92
	 */
93
	public function execute()
94
	{
95
		return PdoWrapperService::getInstance()->query( $this->queryStructure->getElement( QueryStructure::QUERY_STRING ), $this->queryStructure->getElement( QueryStructure::BIND_PARAMS ) );
96
	}
97
98
99
}