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

Update   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 17
dl 0
loc 46
rs 10
c 0
b 0
f 0
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A toString() 0 7 1
A execute() 0 3 1
A getValues() 0 6 1
A getParams() 0 9 2
A __construct() 0 4 1
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