<?php 
$host="localhost"; 
$user="root"; 
$pass=""; 
$dbname=__DIR__."/phprbac.sqlite3"; 
// $dbname="phprbac"; 
$adapter="pdo_sqlite"; 
// $adapter="pdo_mysql"; 
#TODO: test on sqlite 
 
if ($adapter=="pdo_mysql") 
{ 
    try { 
        jf::$DB=new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass); 
    } 
    catch (PDOException $e) 
    { 
        if ($e->getCode()==1049) //database not found 
            InstallPDOMySQL($host,$user,$pass,$dbname); 
        else 
            throw $e; 
    } 
} 
elseif ($adapter=="pdo_sqlite") 
{ 
    if (!file_exists($dbname)) 
        InstallPDOSQLite($host,$user,$pass,$dbname); 
    else 
        jf::$DB=new PDO("sqlite:{$dbname}",$user,$pass); 
//         jf::$DB=new PDO("sqlite::memory:",$user,$pass); 
} 
else # default to mysqli  
{ 
    jf::$DB=new mysqli($host,$user,$pass,$dbname); 
    if(jf::$DB->connect_errno==1049); 
        InstallMySQLi($host,$user,$pass,$dbname); 
} 
function GetSQLs($dbms) 
{ 
    $sql=file_get_contents(__DIR__."/sql/{$dbms}.sql"); 
    $sql=str_replace("PREFIX_",jf::TablePrefix(),$sql); 
    return explode(";",$sql); 
} 
function InstallPDOMySQL($host,$user,$pass,$dbname) 
{ 
    $sqls=GetSQLs("mysql"); 
    $db=new PDO("mysql:host={$host};",$user,$pass); 
    $db->query("CREATE DATABASE {$dbname}"); 
    $db->query("USE {$dbname}"); 
    if (is_array($sqls)) 
        foreach ($sqls as $query) 
        $db->query($query); 
    jf::$DB=new PDO("mysql:host={$host};dbname={$dbname}",$user,$pass); 
    jf::$RBAC->Reset(true); 
} 
function InstallPDOSQLite($host,$user,$pass,$dbname) 
{ 
    jf::$DB=new PDO("sqlite:{$dbname}",$user,$pass); 
    $sqls=GetSQLs("sqlite"); 
    if (is_array($sqls)) 
        foreach ($sqls as $query) 
        jf::$DB->query($query); 
    jf::$RBAC->Reset(true); 
} 
function InstallMySQLi($host,$user,$pass,$dbname) 
{ 
    $sqls=GetSQLs("mysql"); 
    $db=new mysqli($host,$user,$pass); 
    $db->query("CREATE DATABASE {$dbname}"); 
    $db->select_db($dbname); 
    if (is_array($sqls)) 
        foreach ($sqls as $query) 
        $db->query($query); 
    jf::$DB=new mysqli($host,$user,$pass,$dbname); 
    jf::$RBAC->Reset(true); 
}
 
 |