';
print_r($databaseConfig);
echo '';
//At this point, the database 'type' value should be the class name we want to instantiate.
//This class that gets called will create a value in the parameters array called pdo_type which
//is the name of the driver we want to use (ie, pgsql).
if(!isset($databaseConfig['type']) || empty($databaseConfig['type'])) {
user_error("DB::connect: Not passed a valid database config", E_USER_ERROR);
}
//if($databaseConfig['type']=='pdo'){
// $conn = new PDODatabase($databaseConfig);
//} else {
$dbClass = $databaseConfig['type'];
echo 'creating a ' . $dbClass . ' instance!
';
//This will shoot off to the PostgreSQLDatabase class...
$conn = new $dbClass($databaseConfig);
//}
/*if (isset($databaseConfig['pdo']) && $databaseConfig['pdo']) { // TODO:pkrenn_remove
$conn = new PDODatabase($databaseConfig);
} else { // TODO:pkrenn_remove begin
$dbClass = $databaseConfig['type'];
$conn = new $dbClass($databaseConfig);
} // TODO:pkrenn_remove end*/
DB::setConn($conn);
}
/**
* Build the connection string from input.
* @param array $parameters The connection details.
* @return string $connect The connection string.
**/
public function getConnect($parameters) {
echo 'the DB:$globalConn value is ' . DB::$globalConn . '
';
return DB::$globalConn->getConnect($parameters);
}
/**
* Execute the given SQL query.
* @param string $sql The SQL query to execute
* @param int $errorLevel The level of error reporting to enable for the query
* @return Query
*/
static function query($sql, $errorLevel = E_USER_ERROR) {
DB::$lastQuery = $sql;
return DB::$globalConn->query($sql, $errorLevel);
}
/**
* Execute a complex manipulation on the database.
* A manipulation is an array of insert / or update sequences. The keys of the array are table names,
* and the values are map containing 'command' and 'fields'. Command should be 'insert' or 'update',
* and fields should be a map of field names to field values, including quotes. The field value can
* also be a SQL function or similar.
* @param array $manipulation
*/
static function manipulate($manipulation) {
DB::$lastQuery = $manipulation;
return DB::$globalConn->manipulate($manipulation);
}
/**
* Get the autogenerated ID from the previous INSERT query.
* @return int
*/
static function getGeneratedID($table) {
return DB::$globalConn->getGeneratedID($table);
}
/**
* Get the ID for the next new record for the table.
* @var string $table The name od the table.
* @return int
*/
static function getNextID($table) {
return DB::$globalConn->getNextID($table);
}
/**
* Check if the connection to the database is active.
* @return boolean
*/
static function isActive() {
return DB::$globalConn->isActive();
}
/**
* Create the database and connect to it. This can be called if the
* initial database connection is not successful because the database
* does not exist.
* @param string $connect Connection string
* @param string $username Database username
* @param string $password Database Password
* @param string $database Database to which to create
* @return boolean Returns true if successful
*/
static function createDatabase($connect, $username, $password, $database) {
return DB::$globalConn->createDatabase($connect, $username, $password, $database);
}
/**
* Create a new table.
* The table will have a single field - the integer key ID.
* @param string $table Name of table to create.
*/
static function createTable($table) {
return DB::$globalConn->createTable($table);
}
/**
* Create a new field on a table.
* @param string $table Name of the table.
* @param string $field Name of the field to add.
* @param string $spec The field specification, eg 'INTEGER NOT NULL'
*/
static function createField($table, $field, $spec) {
return DB::$globalConn->createField($table, $field, $spec);
}
/**
* Generate the following table in the database, modifying whatever already exists
* as necessary.
* @param string $table The name of the table
* @param string $fieldSchema A list of the fields to create, in the same form as DataObject::$db
* @param string $indexSchema A list of indexes to create. The keys of the array are the names of the index.
* The values of the array can be one of:
* - true: Create a single column index on the field named the same as the index.
* - array('fields' => array('A','B','C'), 'type' => 'index/unique/fulltext'): This gives you full
* control over the index.
*/
static function requireTable($table, $fieldSchema = null, $indexSchema = null) {
return DB::$globalConn->requireTable($table, $fieldSchema, $indexSchema);
}
/**
* Generate the given field on the table, modifying whatever already exists as necessary.
* @param string $table The table name.
* @param string $field The field name.
* @param string $spec The field specification.
*/
static function requireField($table, $field, $spec) {
return DB::$globalConn->requireField($table, $field, $spec);
}
/**
* Generate the given index in the database, modifying whatever already exists as necessary.
* @param string $table The table name.
* @param string $index The index name.
* @param string|boolean $spec The specification of the index. See requireTable() for more information.
*/
static function requireIndex($table, $index, $spec) {
return DB::$globalConn->requireIndex($table, $index, $spec);
}
/**
* If the given table exists, move it out of the way by renaming it to _obsolete_(tablename).
* @param string $table The table name.
*/
static function dontRequireTable($table) {
return DB::$globalConn->dontRequireTable($table);
}
/**
* Checks a table's integrity and repairs it if necessary.
* @var string $tableName The name of the table.
* @return boolean Return true if the table has integrity after the method is complete.
*/
static function checkAndRepairTable($table) {
return DB::$globalConn->checkAndRepairTable($table);
}
/**
* Return the number of rows affected by the previous operation.
* @return int
*/
static function affectedRows() {
return DB::$globalConn->affectedRows();
}
/**
* Returns a list of all tables in the database.
* The table names will be in lower case.
* @return array
*/
static function tableList() {
return DB::$globalConn->tableList();
}
/**
* Get a list of all the fields for the given table.
* Returns a map of field name => field spec.
* @param string $table The table name.
* @return array
*/
static function fieldList($table) {
return DB::$globalConn->fieldList($table);
}
/**
* Enable supression of database messages.
*/
static function quiet() {
return DB::$globalConn->quiet();
}
}
?>