Passed
Push — master ( 749218...64fe1c )
by Jean-Christophe
09:18
created

AbstractDbWrapper::toStringOperator()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 2
ccs 0
cts 2
cp 0
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 2
1
<?php
2
3
namespace Ubiquity\db\providers;
4
5
/**
6
 * Ubiquity\db\providers$AbstractDbWrapper
7
 * This class is part of Ubiquity
8
 *
9
 * @author jcheron <[email protected]>
10
 * @version 1.0.4
11
 *
12
 */
13
abstract class AbstractDbWrapper {
14
	protected $dbInstance;
15
	protected $statements;
16
	public $quote;
17
18
	abstract public function query(string $sql);
19
20
	abstract public function queryAll(string $sql, int $fetchStyle = null);
21
22
	abstract public function queryColumn(string $sql, int $columnNumber = null);
23
24
	abstract public static function getAvailableDrivers();
25
26 69
	public function _getStatement(string $sql) {
27 69
		return $this->statements [\md5 ( $sql )] ??= $this->getStatement ( $sql );
28
	}
29
30
	public function prepareNamedStatement(string $name, string $sql) {
31
		return $this->statements [$name] = $this->getStatement ( $sql );
32
	}
33
34
	public function getNamedStatement(string $name, ?string $sql = null) {
35
		return $this->statements [$name] ??= $this->getStatement ( $sql );
36
	}
37
38
	abstract public function getStatement(string $sql);
39
40
	abstract public function connect(string $dbType, $dbName, $serverName, string $port, string $user, string $password, array $options);
41
42
	abstract public function getDSN(string $serverName, string $port, string $dbName, string $dbType = 'mysql');
43
44
	abstract public function execute(string $sql);
45
46
	abstract public function prepareStatement(string $sql);
47
48
	abstract public function executeStatement($statement, array $values = null);
49
50
	abstract public function statementRowCount($statement);
51
52
	abstract public function lastInsertId($name = null);
53
54
	/**
55
	 * Used by DAO
56
	 *
57
	 * @param mixed $statement
58
	 * @param string $parameter
59
	 * @param mixed $value
60
	 */
61
	abstract public function bindValueFromStatement($statement, $parameter, $value);
62
63
	abstract public function fetchColumn($statement, array $values = null, int $columnNumber = null);
64
65
	abstract public function fetchAll($statement, array $values = null, $mode = null);
66
67
	abstract public function fetchOne($statement, array $values = null, $mode = null);
68
69
	abstract public function fetchAllColumn($statement, array $values = null, string $column = null);
70
71
	abstract public function getTablesName();
72
73
	abstract public function beginTransaction();
74
75
	abstract public function commit();
76
77
	abstract public function inTransaction();
78
79
	abstract public function rollBack();
80
81
	abstract public function nestable();
82
83
	abstract public function savePoint($level);
84
85
	abstract public function releasePoint($level);
86
87
	abstract public function rollbackPoint($level);
88
89
	abstract public function ping();
90
91
	abstract public function getPrimaryKeys($tableName);
92
93
	abstract public function getFieldsInfos($tableName);
94
95
	abstract public function getForeignKeys($tableName, $pkName, $dbName = null);
96
97
	abstract public function _optPrepareAndExecute($sql, array $values = null, $one = false);
98
99
	public function _optExecuteAndFetch($statement, array $values = null, $one = false) {
100
	}
101
102
	abstract public function getRowNum(string $tableName, string $pkName, string $condition): int;
103
104
	abstract public function groupConcat(string $fields, string $separator): string;
105
106
	public function toStringOperator() {
107
		return '';
108
	}
109
110 29
	public function close() {
111 29
		$this->statements = [ ];
112 29
		$this->dbInstance = null;
113 29
	}
114
115
	/**
116
	 *
117
	 * @return object
118
	 */
119 2
	public function getDbInstance() {
120 2
		return $this->dbInstance;
121
	}
122
123
	/**
124
	 *
125
	 * @param object $dbInstance
126
	 */
127
	public function setDbInstance($dbInstance) {
128
		$this->dbInstance = $dbInstance;
129
	}
130
131
	public function quoteValue($value, $type = 2) {
132
		return "'" . \addslashes ( $value ) . "'";
133
	}
134
}