<?php
 
// file: demo_classes_namespace_fhDatabaseInterface.php - Example File, version 20140304 2322
 
// fhDatabaseInterface; classes and functions by frank hartung
 
// created in php/5.5.9 for mysqlnd 5.0.11-dev - 20120503
 
// successfully tested with php/5.3.1 for mysqlnd 5.1.41
 
// 
 
echo 'file: demo_classes_namespace_fhDatabaseInterface.php - Demo/Example File'.'<br><br>';
 
 
require_once('exec_classes_namespace_fhDatabaseInterface.php');
 
use  fhDatabaseInterface\DatabaseConnection
 
    ,fhDatabaseInterface\DatabaseQuery
 
    ,fhDatabaseInterface\DatabaseFunc
 
;
 
 
//examples of usage..
 
echo'<br>$_objDbCon :';
 
echo'<br>';var_dump($_objDbCon);
 
echo'<br>$_IdDbCon :';
 
echo'<br>';var_dump($_IdDbCon);
 
echo'<br>';
 
 
echo'<br>prepare to getlist for table config..';
 
$result=fhDatabaseInterface\DatabaseFunc::getList('config');
 
echo'<br>';var_dump($result);
 
 
global $_config;
 
$_config=fhDatabaseInterface\DatabaseFunc::getDbConfig();//load config from database.table ..config into array $_config
 
echo'<br>$_config :';
 
echo'<br>';var_dump($_config);
 
 
$result=fhDatabaseInterface\DatabaseFunc::valueInArray( fhDatabaseInterface\DatabaseFunc::execute('select database();') );
 
echo'<br>'.$result;
 
 
//since use-settings are executed before like on top of this file(!) with lines:
 
//         use  fhDatabaseInterface\DatabaseConnection
 
//             ,fhDatabaseInterface\DatabaseQuery
 
//             ,fhDatabaseInterface\DatabaseFunc
 
//         ;
 
//.. you can miss to give the name of the namespace..
 
$result=DatabaseFunc::request('select database();');
 
echo'<br>current/selected database: '.$result;
 
 
$now=DatabaseFunc::request('select now();');
 
echo'<br>'.$now;
 
 
$result=DatabaseFunc::request("SHOW DATABASES LIKE '"._sql_dbName."';", NULL, 'array' );
 
echo'<br>result of database show: '.$result;var_dump($result);
 
if($result==_sql_dbName)
 
    echo'<br>database '._sql_dbName.' does already exists!';
 
if($result!=_sql_dbName || $result==NULL)
 
{//database does not exists..
 
    $result=DatabaseFunc::request("CREATE DATABASE '"._sql_dbName."';");
 
    if($result==false)
 
    echo'<br>create database failed!';
 
    echo'<br>result of database creation: '.$result;var_dump($result);
 
}
 
 
$result=DatabaseFunc::request("SHOW TABLE STATUS LIKE '"._sql_dbTblPrefix."config';");
 
echo'<br>result of database table status show: '.$result;var_dump($result);
 
if($result!=_sql_dbTblPrefix.'config' || $result==NULL)
 
{//database does not exists..
 
    $result=DatabaseFunc::request("CREATE TABLE IF NOT EXISTS `"._sql_dbTblPrefix."config` (
 
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 
      `name` varchar(30) NOT NULL,
 
      `string` varchar(50) NOT NULL,
 
      `flag` bigint(20) NOT NULL DEFAULT '0' COMMENT 'byte / numeric ..flag',
 
      `origin` varchar(80) NOT NULL COMMENT 'origin of last modification at time in time',
 
      `time` int(11) NOT NULL DEFAULT '0',
 
      `info` varchar(80) NOT NULL,
 
      `text` text NOT NULL,
 
      `update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 
      PRIMARY KEY (`id`),
 
      UNIQUE KEY `name` (`name`)
 
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COMMENT='configuration ram replacement' AUTO_INCREMENT=2;");
 
    echo'<br>';var_dump($result);
 
}
 
 
//please notice that get-data(sql select) commands like getList/getRow/getField-functions including automatically table-prefix usage/extend..so you just only have to give the shorted targetname of table like config for myprefix_config:
 
$row=DatabaseFunc::getRow('config', "`name`='masterswitch'", '*', '`id` ASC', '0', NULL, NULL, NULL, true);//9th param is debug with value true!
 
if($row['name']!='')
 
    echo'<br>db-table-entry exists - no need for insert entry!';
 
else
 
{
 
    echo'<br>db-table-entry does not exists - insert new db-table-extry..';
 
$result=DatabaseFunc::request("INSERT INTO `"._sql_dbTblPrefix."config` (`id`, `name`, `string`, `flag`, `origin`, `time`, `info`, `text`, `update`) VALUES (NULL, 'masterswitch', '', 1, '', 0, '1:enable 0:disable site', '', '2014-02-24 12:22:04');");
 
if($result==false)
 
    echo'<br>insert failed!';
 
echo'<br>';var_dump($result);
 
}
 
 
echo'<br>lookup to one field of an single row..';
 
$field=DatabaseFunc::getField('config', "`name`='masterswitch'", "`flag`", '`id` ASC', '0', NULL, NULL, NULL, true);//9th param is debug with value true!
 
if($field!='1')
 
    echo'WARNING: config masterswitch is disabled due to the flag value: '.$field;
 
else
 
    echo'info: config masterswitch is enabled due to the flag value: '.$field;
 
//other style of insert-example.. by the keys/values princip
 
$result=DatabaseFunc::insert('config','`name`,`flag`',"'whatever', 1" );
 
if($result==false)
 
    echo'<br>insert failed!';
 
echo'<br>';var_dump($result);
 
 
//another example of insert in simplified form..
 
$result=DatabaseFunc::insertString('config', "`name`='whatever2', `flag`=2" );
 
if($result==true)
 
    echo'<br>insert was successful.';
 
echo'<br>';var_dump($result);
 
 
 
$result=DatabaseFunc::update('config', "`name`='whatever2'", "`flag`=3" );
 
if($result==true)
 
    echo'<br>update was successful.';
 
echo'<br>';var_dump($result);
 
 
$field=DatabaseFunc::getField('config', "`name`='whatever2'", "`flag`", '`id` ASC', '0', NULL, NULL, NULL, true);//9th param is debug with value true!
 
if($field=='3')
 
    echo'verify of update confirmed!';
 
else
 
    echo'verify of update NOT confirmed!(=FAIL!)';
 
 
    
 
$result=DatabaseFunc::replace('config', "`name`, `flag`", "'whatever2', 4" );
 
if($result==true)
 
    echo'<br>replace(update-variant) was successful.';
 
echo'<br>';var_dump($result);
 
 
$field=DatabaseFunc::getField('config', "`name`='whatever2'", "`flag`", '`id` ASC', '0', NULL, NULL, NULL, true);//9th param is debug with value true!
 
if($field=='4')
 
    echo'verify of replace(update) confirmed!';
 
else
 
    echo'verify of replace(update) NOT confirmed!(=FAIL!)';
 
 
 
$list=DatabaseFunc::getList('config');//array of all entries..all fields..order asc
 
echo'<br>'.count($list).' entries!';
 
foreach($list AS $key=>$data)
 
{
 
    echo'<br>'.$key.'='.$data.' contains..';
 
    echo'<br>name '.$data['name'].' in database row with id '.$data['id'];
 
}
 
 
$list=DatabaseFunc::getList('config', "name like '%'", 'id,name', 'id DESC');//array of all entries..this time in DESC order..but only field id and name
 
echo'<br>'.count($list).' entries! ..in order of DESC';
 
foreach($list AS $key=>$data)
 
{
 
    echo'<br>'.$key.'='.$data.' contains..';
 
    echo'<br>name '.$data['name'].' in database row with id '.$data['id'];
 
}
 
 
//now lets explore the details of the fields...
 
$list=DatabaseFunc::getList('config', "1", '*', 'name ASC');//table config; array of all(1) entries..this time in ASC order by field name..and all('*') fields
 
echo'<br>'.count($list).' entries! ..in order of DESC';
 
foreach($list AS $key=>$line)
 
{
 
    echo'<br>'.$key.'='.$data.' contains..';
 
    foreach($line AS $field=>$value)
 
    {
 
        echo'<br> field/value ';
 
        if($field=='name')
 
            echo'<b>';
 
        if($field=='name' && $value=='masterswitch')
 
            echo'<u>';
 
        echo $field.' = '.$value.'</b></u>';
 
    }
 
}
 
 
//exploring an table with their fieldnames.. for reason (example) of creating an table simple header for giving out an list..
 
$result=DatabaseFunc::getTableFields('config', NULL, true);
 
echo'<br>fieldnames of table ..'.count($list).' entries! ..in order of DESC';
 
if(count($result)>0)
 
{//view the header due to the tablefields-list
 
    echo'<table><tr>';//open table-display with first row
 
    foreach($result AS $key=>$line)
 
    {
 
        foreach($line AS $title=>$value)
 
        {
 
            if($title=='Field')
 
                $name=$value;
 
            elseif($title=='Type')
 
                $type=$value;
 
        }
 
        echo'<td><b>'.$name.'</b> <small>('.$type.')</small></td>';//fill row with data
 
    }
 
    echo'</tr><br>';
 
    //now display the content of table-rows in the html table..
 
    $list=DatabaseFunc::getList('config', "1", '*', 'id ASC');//table config; array of all(1)         
 
    if(count($list)>0)
 
    {
 
        foreach($list AS $key=>$line)
 
        {
 
            echo'<tr>';
 
            foreach($line AS $field=>$value)
 
            {
 
                echo'<td>'.$value.'</td>';
 
            }
 
            echo'</tr>';
 
        }
 
            
 
    }
 
    echo'</table><br>';//close table-display
 
}
 
else
 
    echo'<br>field-result are empty!';
 
 
$result=DatabaseFunc::getDatabaseCreate(NULL, NULL, true);//show default database create with debug true
 
echo'<br>show result of Database-Create:<br>';
 
var_dump($result);
 
$query=$result[0]['Create Database'];
 
echo'<br>sql-query to create Database: <br>'.$query.'<br>';
 
 
$result=DatabaseFunc::getTableCreate('config', NULL, true);//show table 'config' create with debug true
 
echo'<br>show result of Table-Create of table ,,config,,:<br>';
 
var_dump($result);
 
$query=$result[0]['Create Table'];
 
echo'<br>sql-query to create Table: <br>'.$query.'<br>';
 
 
$query2=DatabaseFunc::getQueryTableCreate('config', NULL, true);//show table 'config' create with debug true
 
if($query===$query2)
 
    echo'<br>create of table query result is verified to be exact!!';
 
else
 
    echo'<br>create table query result is NOT confirmed to be verified!';
 
 
//eof
 
 
 |