Passed
Branch v1.4.0 (ac3196)
by Wanderson
01:13
created

Update::getValues()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Win\Database\Sql\Queries;
4
5
use Win\Database\Orm;
6
use Win\Database\Sql\Query;
7
8
/**
9
 * UPDATE SET
10
 */
11
class Update extends Query
12
{
13
	/** @var mixed[] */
14
	protected $values;
15
16
	public function __construct(Orm $orm)
17
	{
18
		parent::__construct($orm);
19
		$this->values = $orm->getRowValues();
20
	}
21
22
	/** @return string */
23
	public function toString()
24
	{
25
		$params = $this->getParams();
26
27
		return 'UPDATE ' . $this->table
28
				. ' SET ' . implode(', ', $params)
29
				. ' WHERE id = ? ';
30
	}
31
32
	/** @return string[] */
33
	protected function getParams()
34
	{
35
		$columns = array_keys($this->values);
36
		$params = [];
37
		foreach ($columns as $column) {
38
			$params[] = $column . ' = ?';
39
		}
40
41
		return $params;
42
	}
43
44
	/** @return mixed[] */
45
	public function getValues()
46
	{
47
		$values = array_values($this->values);
48
		$values[] = $this->orm->getModel()->getId();
49
50
		return $values;
51
	}
52
53
	/** @return bool */
54
	public function execute()
55
	{
56
		return $this->connection->query($this, $this->getValues());
57
	}
58
}
59