PHP Classes

File: setup.php

Recommend this page to a friend!
  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: 11 years ago
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);
}