PluginProbe
ShiftController Employee Shift Scheduling / 2.2.5
ShiftController Employee Shift Scheduling v2.2.5
4.9.97 4.9.96 4.9.95 4.9.74 4.9.75 4.9.76 4.9.77 4.9.78 4.9.84 4.9.85 4.9.87 4.9.91 4.9.92 trunk 2.1.0 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 3.2.4 All 38 releases
shiftcontroller / happ / system / database / DB.php

DB.php in ShiftController Employee Shift Scheduling 2.2.5, at happ/system/database/DB.php

162 lines 4.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2 /**
3 * CodeIgniter
4 *
5 * An open source application development framework for PHP 5.1.6 or newer
6 *
7 * @package CodeIgniter
8 * @author ExpressionEngine Dev Team
9 * @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
10 * @license http://codeigniter.com/user_guide/license.html
11 * @link http://codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16 // ------------------------------------------------------------------------
17
18 /**
19 * Initialize the database
20 *
21 * @category Database
22 * @author ExpressionEngine Dev Team
23 * @link http://codeigniter.com/user_guide/database/
24 * @param string
25 * @param bool Determines if active record should be used or not
26 */
27 function &HC_DB($params = '', $active_record_override = NULL)
28 {
29 // Load the DB config file if a DSN string wasn't passed
30 if (is_string($params) AND strpos($params, '://') === FALSE)
31 {
32 // Is the config file in the environment folder?
33 if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/database.php'))
34 {
35 if ( ! file_exists($file_path = NTS_SYSTEM_APPPATH.'config/database.php'))
36 {
37 show_error('The configuration file database.php does not exist.');
38 }
39 }
40
41 include($file_path);
42
43 if ( ! isset($db) OR count($db) == 0)
44 {
45 show_error('No database connection settings were found in the database config file.');
46 }
47
48 if ($params != '')
49 {
50 $active_group = $params;
51 }
52
53 if ( ! isset($active_group) OR ! isset($db[$active_group]))
54 {
55 show_error('You have specified an invalid database connection group.');
56 }
57
58 $params = $db[$active_group];
59 }
60 elseif (is_string($params))
61 {
62
63 /* parse the URL from the DSN string
64 * Database settings can be passed as discreet
65 * parameters or as a data source name in the first
66 * parameter. DSNs must have this prototype:
67 * $dsn = 'driver://username:password@hostname/database';
68 */
69
70 if (($dns = @parse_url($params)) === FALSE)
71 {
72 show_error('Invalid DB Connection String');
73 }
74
75 $params = array(
76 'dbdriver' => $dns['scheme'],
77 'hostname' => (isset($dns['host'])) ? rawurldecode($dns['host']) : '',
78 'username' => (isset($dns['user'])) ? rawurldecode($dns['user']) : '',
79 'password' => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '',
80 'database' => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : ''
81 );
82
83 // were additional config items set?
84 if (isset($dns['query']))
85 {
86 parse_str($dns['query'], $extra);
87
88 foreach ($extra as $key => $val)
89 {
90 // booleans please
91 if (strtoupper($val) == "TRUE")
92 {
93 $val = TRUE;
94 }
95 elseif (strtoupper($val) == "FALSE")
96 {
97 $val = FALSE;
98 }
99
100 $params[$key] = $val;
101 }
102 }
103 }
104
105 // No DB specified yet? Beat them senseless...
106 if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '')
107 {
108 show_error('You have not selected a database type to connect to.');
109 }
110
111 // Load the DB classes. Note: Since the active record class is optional
112 // we need to dynamically create a class that extends proper parent class
113 // based on whether we're using the active record class or not.
114 // Kudos to Paul for discovering this clever use of eval()
115
116 if ($active_record_override !== NULL)
117 {
118 $active_record = $active_record_override;
119 }
120
121 require_once(BASEPATH.'database/DB_driver.php');
122
123 if ( ! isset($active_record) OR $active_record == TRUE)
124 {
125 require_once(BASEPATH.'database/DB_active_rec.php');
126
127 if ( ! class_exists('CI_DB'))
128 {
129 eval('class CI_DB extends CI_DB_active_record { }');
130 }
131 }
132 else
133 {
134 if ( ! class_exists('CI_DB'))
135 {
136 eval('class CI_DB extends CI_DB_driver { }');
137 }
138 }
139
140 require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php');
141
142 // Instantiate the DB adapter
143 $driver = 'CI_DB_'.$params['dbdriver'].'_driver';
144 $DB = new $driver($params);
145
146 if ($DB->autoinit == TRUE)
147 {
148 $DB->initialize();
149 }
150
151 if (isset($params['stricton']) && $params['stricton'] == TRUE)
152 {
153 $DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"');
154 }
155
156 return $DB;
157 }
158
159
160
161 /* End of file DB.php */
162 /* Location: ./system/database/DB.php */