Connect [and create] database with ADOdb

2004-05-19 12:00

A piece of code that tries to connect to a database server with ADOdb library for PHP. If the database does not exist, the script tries to create it:

```break // example configuration: $db_type = ‘mysql’; $db_server = ‘localhost’; $db_username = ‘root’; $db_password = NULL; $db_database = ‘very_new_database’; $db_create = TRUE; // this variable sets

// This is needed to turn fatal errors to warnings when connecting. // We use Connect for database checks, so this is really needed. define(‘ADODB_ERROR_HANDLER_TYPE’, E_USER_WARNING);

// include ADOdb class files: require_once(‘adodb/adodb-errorhandler.inc.php’); require_once(‘adodb/adodb.inc.php’);

// create connection object: $db = ADONewConnection($db_type); $db->debug = FALSE;

// first try to connect to the exact database on server $ok = $db->Connect($db_server, $db_username, $db_password, $db_database);

// if failed to connect to database check if we should create it: if (!$ok && $db_create) {

// failed db connection has to be constructed from start:
$db = ADONewConnection($db_type);
$db->debug = FALSE;

// try connecting without database parameter:
$ok = $db->Connect($db_server,
$db_username,
$db_password);

// if connected without database param:
if ($ok) {

    // get SQL to create database:
    $dict = NewDataDictionary($db);
    $sql = $dict->CreateDatabase($db_database);

    // try creating database:
    // "2″ is status returned by ExecuteSQLArray()
    if (!$ok = (2 == $dict->ExecuteSQLArray($sql))) {

        // try to connect after creating:
        $ok = $db->Connect($db_server, $db_username, $db_password, $db_database);
    } else {

        echo '<p>Failed to create database "'.$db_database.'".
        The database server returned an error:
        <em>'.$db->ErrorMsg().'</em>.</p>';
    }
} }

// Check status: if ($ok) { echo ‘<p>Connected successfully.</p>’; } else { echo ‘<p>Database error: ’.$db->ErrorMsg().’</p>’; } ```