@@ -24,10 +24,15 @@ discard block |
||
24 | 24 | } |
25 | 25 | |
26 | 26 | private function getType($val) { |
27 | - if ($val instanceof \DateTime) return 'DATETIME'; |
|
28 | - else if (is_int($val)) return 'INT(11)'; |
|
29 | - else if (is_double($val)) return 'DECIMAL(9,' . strlen($val) - strrpos($val, '.') - 1 . ')'; |
|
30 | - else if (is_string($val)) return strlen($val) < 192 ? 'VARCHAR(191)' : 'LONGBLOB'; |
|
27 | + if ($val instanceof \DateTime) { |
|
28 | + return 'DATETIME'; |
|
29 | + } else if (is_int($val)) { |
|
30 | + return 'INT(11)'; |
|
31 | + } else if (is_double($val)) { |
|
32 | + return 'DECIMAL(9,' . strlen($val) - strrpos($val, '.') - 1 . ')'; |
|
33 | + } else if (is_string($val)) { |
|
34 | + return strlen($val) < 192 ? 'VARCHAR(191)' : 'LONGBLOB'; |
|
35 | + } |
|
31 | 36 | return 'VARCHAR(191)'; |
32 | 37 | } |
33 | 38 | |
@@ -36,8 +41,11 @@ discard block |
||
36 | 41 | $parts = []; |
37 | 42 | foreach ($primaryKey as $key) { |
38 | 43 | $pk = $data->$key; |
39 | - if ($pk == null) $parts[] = $key . ' INT(11) NOT NULL AUTO_INCREMENT'; |
|
40 | - else $parts[] = $key . ' ' . $this->getType($pk) . ' NOT NULL'; |
|
44 | + if ($pk == null) { |
|
45 | + $parts[] = $key . ' INT(11) NOT NULL AUTO_INCREMENT'; |
|
46 | + } else { |
|
47 | + $parts[] = $key . ' ' . $this->getType($pk) . ' NOT NULL'; |
|
48 | + } |
|
41 | 49 | } |
42 | 50 | |
43 | 51 | $pkField = implode(', ', $parts) . ', PRIMARY KEY(' . implode(', ', $primaryKey) . ')'; |
@@ -46,14 +54,17 @@ discard block |
||
46 | 54 | |
47 | 55 | private function alterColumns($table, array $primaryKey, $data) { |
48 | 56 | foreach ($data as $key => $value) { |
49 | - if ($this->isNotSavableType($value, $key, $primaryKey)) continue; |
|
57 | + if ($this->isNotSavableType($value, $key, $primaryKey)) { |
|
58 | + continue; |
|
59 | + } |
|
50 | 60 | |
51 | 61 | $type = $this->getType($value); |
52 | 62 | |
53 | 63 | try { |
54 | - if (!$this->pdo->query('ALTER TABLE ' . $table . ' ADD ' . $this->quote($key) . ' ' . $type)) throw new \Exception('Could not alter table'); |
|
55 | - } |
|
56 | - catch (\Exception $e) { |
|
64 | + if (!$this->pdo->query('ALTER TABLE ' . $table . ' ADD ' . $this->quote($key) . ' ' . $type)) { |
|
65 | + throw new \Exception('Could not alter table'); |
|
66 | + } |
|
67 | + } catch (\Exception $e) { |
|
57 | 68 | $this->pdo->query('ALTER TABLE ' . $table . ' MODIFY ' . $this->quote($key) . ' ' . $type); |
58 | 69 | } |
59 | 70 | } |
@@ -81,7 +92,9 @@ discard block |
||
81 | 92 | $keyName = $this->quote(implode('_', $fields)); |
82 | 93 | |
83 | 94 | $results = $this->pdo->query('SHOW INDEX FROM ' . $this->quote($table) . ' WHERE Key_Name = "' . $keyName . '"'); |
84 | - if ($results && count($results->fetchAll()) == 0) $this->pdo->query('CREATE INDEX ' . $keyName . ' ON ' . $this->quote($table) . ' (' . implode(', ', $fields) . ')'); |
|
95 | + if ($results && count($results->fetchAll()) == 0) { |
|
96 | + $this->pdo->query('CREATE INDEX ' . $keyName . ' ON ' . $this->quote($table) . ' (' . implode(', ', $fields) . ')'); |
|
97 | + } |
|
85 | 98 | } |
86 | 99 | |
87 | 100 | public function optimiseColumns($table) { |
@@ -19,7 +19,9 @@ discard block |
||
19 | 19 | $args = $query->getArgs(); |
20 | 20 | |
21 | 21 | //Handle SQLite when PDO_ERRMODE is set to SILENT |
22 | - if ($stmt === false) throw new \Exception('Invalid query'); |
|
22 | + if ($stmt === false) { |
|
23 | + throw new \Exception('Invalid query'); |
|
24 | + } |
|
23 | 25 | |
24 | 26 | $stmt->execute($args); |
25 | 27 | if ($stmt->errorCode() !== '00000' && $stmt->errorInfo()[2] == 'database schema has changed') { |
@@ -35,12 +37,19 @@ discard block |
||
35 | 37 | } |
36 | 38 | |
37 | 39 | private function getType($val) { |
38 | - if ($val instanceof \DateTime) return 'DATETIME'; |
|
39 | - else if (is_int($val)) return 'INTEGER'; |
|
40 | - else if (is_double($val)) return 'DECIMAL(9,' . strlen($val) - strrpos($val, '.') - 1 . ')'; |
|
41 | - else if (is_string($val) && strlen($val) < 256) return 'VARCHAR(255)'; |
|
42 | - else if (is_string($val) && strlen($val) > 256) return 'LONGBLOG'; |
|
43 | - else return 'VARCHAR(255)'; |
|
40 | + if ($val instanceof \DateTime) { |
|
41 | + return 'DATETIME'; |
|
42 | + } else if (is_int($val)) { |
|
43 | + return 'INTEGER'; |
|
44 | + } else if (is_double($val)) { |
|
45 | + return 'DECIMAL(9,' . strlen($val) - strrpos($val, '.') - 1 . ')'; |
|
46 | + } else if (is_string($val) && strlen($val) < 256) { |
|
47 | + return 'VARCHAR(255)'; |
|
48 | + } else if (is_string($val) && strlen($val) > 256) { |
|
49 | + return 'LONGBLOG'; |
|
50 | + } else { |
|
51 | + return 'VARCHAR(255)'; |
|
52 | + } |
|
44 | 53 | } |
45 | 54 | |
46 | 55 | private function tableExists($name) { |
@@ -82,8 +91,7 @@ discard block |
||
82 | 91 | |
83 | 92 | $this->pdo->query('INSERT INTO ' . $this->quote($tableTo) . '(' . $columns . ') SELECT ' . $columns . ' FROM ' . $this->quote($tableFrom)); |
84 | 93 | } |
85 | - } |
|
86 | - catch (\PDOException $e) { |
|
94 | + } catch (\PDOException $e) { |
|
87 | 95 | // No data to copy |
88 | 96 | echo $e->getMessage(); |
89 | 97 | } |
@@ -93,8 +101,11 @@ discard block |
||
93 | 101 | $parts = []; |
94 | 102 | foreach ($primaryKey as $key) { |
95 | 103 | $pk = $data->$key; |
96 | - if ($pk == null) $parts[] = $key . ' INTEGER'; |
|
97 | - else $parts[] = $key . ' ' . $this->getType($pk) . ' NOT NULL'; |
|
104 | + if ($pk == null) { |
|
105 | + $parts[] = $key . ' INTEGER'; |
|
106 | + } else { |
|
107 | + $parts[] = $key . ' ' . $this->getType($pk) . ' NOT NULL'; |
|
108 | + } |
|
98 | 109 | } |
99 | 110 | |
100 | 111 | $pkField = implode(', ', $parts) . ', PRIMARY KEY(' . implode(', ', $primaryKey) . ')'; |
@@ -104,7 +115,9 @@ discard block |
||
104 | 115 | |
105 | 116 | private function alterColumns($table, array $primaryKey, $data) { |
106 | 117 | foreach ($data as $key => $value) { |
107 | - if ($this->isNotSavableType($value, $key, $primaryKey)) continue; |
|
118 | + if ($this->isNotSavableType($value, $key, $primaryKey)) { |
|
119 | + continue; |
|
120 | + } |
|
108 | 121 | |
109 | 122 | $type = $this->getType($value); |
110 | 123 | |
@@ -118,10 +131,14 @@ discard block |
||
118 | 131 | } |
119 | 132 | |
120 | 133 | public function addIndex($table, array $fields) { |
121 | - if (empty($fields)) return false; |
|
134 | + if (empty($fields)) { |
|
135 | + return false; |
|
136 | + } |
|
122 | 137 | |
123 | 138 | //SQLite doesn't support ASC/DESC indexes, remove the keywords |
124 | - foreach ($fields as &$field) $field = str_ireplace([' desc', ' asc'], '', $field); |
|
139 | + foreach ($fields as &$field) { |
|
140 | + $field = str_ireplace([' desc', ' asc'], '', $field); |
|
141 | + } |
|
125 | 142 | sort($fields); |
126 | 143 | $fields = array_map('strtolower', $fields); |
127 | 144 | $fields = array_map('trim', $fields); |
@@ -130,8 +147,7 @@ discard block |
||
130 | 147 | |
131 | 148 | try { |
132 | 149 | $this->pdo->query('CREATE INDEX IF NOT EXISTS ' . $keyName . ' ON ' . $table . ' (' . implode(', ', $fields) . ')'); |
133 | - } |
|
134 | - catch (\Exception $e) { |
|
150 | + } catch (\Exception $e) { |
|
135 | 151 | |
136 | 152 | } |
137 | 153 | } |