Rev 29 | Rev 33 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 29 | Rev 32 | ||
---|---|---|---|
Line 19... | Line 19... | ||
19 | * Last success value of the database operation
|
19 | * Last success value of the database operation
|
20 | * @author Thomas Lahn
|
20 | * @author Thomas Lahn
|
21 | */
|
21 | */
|
22 | class Database extends AbstractModel |
22 | class Database extends AbstractModel |
23 | {
|
23 | {
|
- | 24 | /* Access properties */
|
|
- | 25 | ||
24 | /**
|
26 | /**
|
25 | * DSN of the database
|
27 | * DSN of the database
|
26 | * @var string
|
28 | * @var string
|
27 | */
|
29 | */
|
28 | protected $_dsn = ''; |
30 | protected $_dsn = ''; |
Line 42... | Line 44... | ||
42 | /**
|
44 | /**
|
43 | * PDO driver-specific options
|
45 | * PDO driver-specific options
|
44 | * @var array
|
46 | * @var array
|
45 | */
|
47 | */
|
46 | protected $_options = array(); |
48 | protected $_options = array(); |
- | 49 | ||
- | 50 | /**
|
|
- | 51 | * Database-specific string to use for quoting a name or value
|
|
- | 52 | * left-hand side (for security reasons and to prevent a name
|
|
- | 53 | * from being parsed as a keyword).
|
|
- | 54 | * @var string
|
|
- | 55 | */
|
|
- | 56 | protected $_leftQuote = ''; |
|
- | 57 | ||
- | 58 | /**
|
|
- | 59 | * Database-specific string to use for quoting a name or value
|
|
- | 60 | * left-hand side (for security reasons and to prevent a name
|
|
- | 61 | * from being parsed as a keyword).
|
|
- | 62 | * @var string
|
|
- | 63 | */
|
|
- | 64 | protected $_rightQuote = ''; |
|
- | 65 | ||
- | 66 | /* Status properties */
|
|
47 | 67 | ||
48 | /**
|
68 | /**
|
49 | * Database connection
|
69 | * Database connection
|
50 | * @var PDO
|
70 | * @var PDO
|
51 | */
|
71 | */
|
Line 143... | Line 163... | ||
143 | * @return string
|
163 | * @return string
|
144 | * The escaped name
|
164 | * The escaped name
|
145 | */
|
165 | */
|
146 | public function escapeName($name) |
166 | public function escapeName($name) |
147 | {
|
167 | {
|
148 | return $name; |
168 | return $this->_leftQuote . $name . $this->_rightQuote; |
149 | }
|
169 | }
|
150 | 170 | ||
151 | /**
|
171 | /**
|
152 | * Determines if an array is associative (has not all integer keys).
|
172 | * Determines if an array is associative (has not all integer keys).
|
153 | *
|
173 | *
|
Line 181... | Line 201... | ||
181 | */
|
201 | */
|
182 | protected function _escapeAliasArray(array &$array) |
202 | protected function _escapeAliasArray(array &$array) |
183 | {
|
203 | {
|
184 | foreach ($array as $column => &$value) |
204 | foreach ($array as $column => &$value) |
185 | {
|
205 | {
|
- | 206 | $quotedColumn = $column; |
|
- | 207 | if (strpos($column, $this->_leftQuote) === false |
|
- | 208 | && strpos($column, $this->_rightQuote) === false) |
|
- | 209 | {
|
|
- | 210 | $quotedColumn = $this->_leftQuote . $column . $this->_rightQuote; |
|
- | 211 | }
|
|
- | 212 | ||
186 | $value = $value . ' AS ' . $column; |
213 | $value = $value . ' AS ' . $quotedColumn; |
187 | }
|
214 | }
|
188 | 215 | ||
189 | return $array; |
216 | return $array; |
190 | }
|
217 | }
|
191 | 218 | ||
Line 226... | Line 253... | ||
226 | * The strings to use left-hand side (index 0) and right-hand side (index 1)
|
253 | * The strings to use left-hand side (index 0) and right-hand side (index 1)
|
227 | * of the column name. The default is the empty string, respectively.
|
254 | * of the column name. The default is the empty string, respectively.
|
228 | * @return array
|
255 | * @return array
|
229 | * The escaped array
|
256 | * The escaped array
|
230 | */
|
257 | */
|
231 | protected function _escapeValueArray(array &$array, $suffix = '', array &$escape = array('', '')) |
258 | protected function _escapeValueArray(array &$array, $suffix = '') |
232 | {
|
259 | {
|
233 | $result = array(); |
260 | $result = array(); |
234 | 261 | ||
235 | foreach ($array as $column => $value) |
262 | foreach ($array as $column => $value) |
236 | {
|
263 | {
|
Line 248... | Line 275... | ||
248 | if (is_array($value)) |
275 | if (is_array($value)) |
249 | {
|
276 | {
|
250 | $placeholder = '(' . implode(',', self::_expand($value, $column)) . ')'; |
277 | $placeholder = '(' . implode(',', self::_expand($value, $column)) . ')'; |
251 | }
|
278 | }
|
252 | 279 | ||
253 | $result[] = $escape[0] . $column . $escape[1] . "{$op}{$placeholder}{$suffix}"; |
280 | $result[] = $this->_leftQuote . $column . $this->_rightQuote . "{$op}{$placeholder}{$suffix}"; |
254 | }
|
281 | }
|
255 | 282 | ||
256 | return $result; |
283 | return $result; |
257 | }
|
284 | }
|
258 | 285 |