Rev 52 | Rev 61 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 52 | Rev 58 | ||
---|---|---|---|
Line 228... | Line 228... | ||
228 | * @see PDO::exec()
|
228 | * @see PDO::exec()
|
229 | */
|
229 | */
|
230 | public function create ($dsn, $username = null, $password = null, |
230 | public function create ($dsn, $username = null, $password = null, |
231 | array $options = null, $dbspec = null, $force = false) |
231 | array $options = null, $dbspec = null, $force = false) |
232 | {
|
232 | {
|
233 | $connection = new PDO($dsn, |
233 | $connection = new \PDO($dsn, |
234 | $username !== null ? $username : $this->_username, |
234 | $username !== null ? $username : $this->_username, |
235 | $password !== null ? $password : $this->_password, |
235 | $password !== null ? $password : $this->_password, |
236 | $options !== null ? $options : $this->_options); |
236 | $options !== null ? $options : $this->_options); |
237 | 237 | ||
238 | $query = 'CREATE DATABASE' |
238 | $query = 'CREATE DATABASE' |
Line 242... | Line 242... | ||
242 | 242 | ||
243 | return $connection->exec($query); |
243 | return $connection->exec($query); |
244 | }
|
244 | }
|
245 | 245 | ||
246 | /**
|
246 | /**
|
- | 247 | * Maps column meta-information to a column definition.
|
|
- | 248 | *
|
|
- | 249 | * Should be overwritten and called by inheriting classes.
|
|
- | 250 | *
|
|
- | 251 | * @todo
|
|
- | 252 | * @param array $value
|
|
- | 253 | * @param string $column_name
|
|
- | 254 | * @return string
|
|
- | 255 | */
|
|
- | 256 | protected function _columnDef (array $data, $column_name) |
|
- | 257 | {
|
|
- | 258 | $def = (isset($data['unsigned']) && $data['unsigned'] ? 'UNSIGNED ' : '') |
|
- | 259 | . $data['type'] |
|
- | 260 | . (isset($data['not_null']) && $data['not_null'] ? ' NOT NULL' : ' NULL') |
|
- | 261 | . (isset($data['default']) && $data['default'] ? " DEFAULT {$data['default']}" : '') |
|
- | 262 | . (isset($data['auto_inc']) && $data['auto_inc'] ? ' AUTO_INCREMENT' : '') |
|
- | 263 | . (isset($data['unique']) && $data['unique'] ? ' UNIQUE KEY' : '') |
|
- | 264 | . (isset($data['primary']) && $data['primary'] ? ' PRIMARY KEY' : '') |
|
- | 265 | . (isset($data['comment']) && $data['comment'] ? " COMMENT '{$data['comment']}'" : ''); |
|
- | 266 | ||
- | 267 | return $this->escapeName($column_name) . ' ' . $def; |
|
- | 268 | }
|
|
- | 269 | ||
- | 270 | /**
|
|
- | 271 | * Creates a database table according to the specified parameters
|
|
- | 272 | *
|
|
- | 273 | * @todo
|
|
- | 274 | * @param string $name
|
|
- | 275 | * @param array $columns
|
|
- | 276 | * @param array $options = null
|
|
- | 277 | * @return bool
|
|
- | 278 | * @see PDOStatement::execute()
|
|
- | 279 | */
|
|
- | 280 | public function createTable ($name, array $columns, array $options = null) |
|
- | 281 | {
|
|
- | 282 | $class = \get_class($this); |
|
- | 283 | $query = 'CREATE TABLE ' |
|
- | 284 | . $this->escapeName($name) |
|
- | 285 | . '(' |
|
- | 286 | . array_map(array($this, '_columnDef'), $columns, array_keys($columns)) . ')'; |
|
- | 287 | ||
- | 288 | $stmt = $this->prepare($query); |
|
- | 289 | ||
- | 290 | /* DEBUG */
|
|
- | 291 | if (defined('DEBUG') && DEBUG > 1) |
|
- | 292 | {
|
|
- | 293 | debug(array( |
|
- | 294 | 'query' => $query, |
|
- | 295 | )); |
|
- | 296 | }
|
|
- | 297 | ||
- | 298 | $success =& $this->_lastSuccess; |
|
- | 299 | $success = $stmt->execute(); |
|
- | 300 | ||
- | 301 | $errorInfo =& $this->_lastError; |
|
- | 302 | $errorInfo = $stmt->errorInfo(); |
|
- | 303 | ||
- | 304 | $this->_resetLastInsertId(); |
|
- | 305 | ||
- | 306 | $result =& $this->_lastResult; |
|
- | 307 | $result = $stmt->fetchAll(); |
|
- | 308 | ||
- | 309 | if (defined('DEBUG') && DEBUG > 1) |
|
- | 310 | {
|
|
- | 311 | debug(array( |
|
- | 312 | '_lastSuccess' => $success, |
|
- | 313 | '_lastError' => $errorInfo, |
|
- | 314 | '_lastResult' => $result |
|
- | 315 | )); |
|
- | 316 | }
|
|
- | 317 | ||
- | 318 | return $success; |
|
- | 319 | }
|
|
- | 320 | ||
- | 321 | /**
|
|
247 | * Initiates a transaction
|
322 | * Initiates a transaction
|
248 | *
|
323 | *
|
249 | * @return bool
|
324 | * @return bool
|
250 | * @see PDO::beginTransaction()
|
325 | * @see PDO::beginTransaction()
|
251 | */
|
326 | */
|