Login   Register  
PHP Classes
elePHPant
Icontem

File: setup.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Abius X  >  PHP RBAC Class  >  setup.php  >  Download  
File: setup.php
Role: Auxiliary script
Content type: text/plain
Description: the setup and config script
Class: PHP RBAC Class
Role Based Access Control based on NIST Level 2
Author: By
Last change:
Date: 2013-02-23 11:03
Size: 1,903 bytes
 

Contents

Class file image Download
<?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);
}