Updated Database classes

This commit is contained in:
Timothy Warren 2012-01-30 07:57:17 -05:00
parent 665ffe8c21
commit a3e4fa3c68
6 changed files with 157 additions and 3 deletions

View File

@ -19,11 +19,95 @@
*/
class DB_PDO extends PDO {
protected $statement;
function __construct($dsn, $username=NULL, $password=NULL, $driver_options=array())
{
parent::__construct($dsn, $username, $password, $driver_options);
}
// --------------------------------------------------------------------------
/**
* PHP magic method to facilitate dynamic methods
*
* @param string $name
* @param array $args
*/
function __call($name, $args)
{
if(is_callable($this->$name))
{
//Add $this to the beginning of the args array
array_unshift($args, $this);
//Call the dynamic function
return call_user_func_array($this->$name, $args);
}
}
// --------------------------------------------------------------------------
/**
* PHP magic methods to call non-static methods statically
*
* @param string $name
* @param array $args
*/
public static function __callStatic($name, $args)
{
if(is_callable(parent::$name))
{
return call_user_func_array(parent::$name, $args);
}
}
// --------------------------------------------------------------------------
/**
* Simplifies prepared statements for database queries
*
* @param string $sql
* @param array $data
* @return mixed PDOStatement / FALSE
*/
function prepare_query($sql, $data)
{
// Prepare the sql
$query = $this->prepare($sql);
if( ! is_like_array($query))
{
$this->get_last_error();
return FALSE;
}
// Set the statement in the class variable for easy later access
$this->statement =& $query;
if( ! is_like_array($data))
{
trigger_error("Invalid data argument");
return FALSE;
}
// Bind the parameters
foreach($data as $k => $value)
{
$res = $query->bindValue($k, $value);
if( ! $res)
{
trigger_error("Parameter not successfully bound");
return FALSE;
}
}
return $query;
}
}
// End of db_pdo.php

View File

@ -9,7 +9,19 @@
* @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license
*/
class MySQL {
// --------------------------------------------------------------------------
/**
* MySQL specific class
*
* @extends DB_PDO
*/
class MySQL extends DB_PDO {
function __construct($dsn, $username=null, $password=null, $options=array())
{
parent::__construct($dsn, $username, $password, $options);
}
}

View File

@ -16,9 +16,16 @@
* ODBC Database Driver
*
* For general database access for databases not specified by the main drivers
*
* @extends DB_PDO
*/
class ODBC extends DB_PDO {
function __construct($dsn, $username=null, $password=null, $options=array())
{
parent::__construct($dsn, $username, $password, $options);
}
}
// End of odbc.php

View File

@ -9,6 +9,19 @@
* @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license
*/
class pgSQL {
// --------------------------------------------------------------------------
/**
* PostgreSQL specifc class
*
* @extends DB_PDO
*/
class pgSQL extends DB_PDO {
function __construct($dsn, $username=null, $password=null, $options=array())
{
parent::__construct($dsn, $username, $password, $options);
}
}

View File

@ -9,7 +9,19 @@
* @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license
*/
class SQLite {
// --------------------------------------------------------------------------
/**
* SQLite specific class
*
* @extends DB_PDO
*/
class SQLite extends DB_PDO {
function __construct($dsn)
{
parent::__construct($dsn);
}
}

26
src/windows/add_db.php Normal file
View File

@ -0,0 +1,26 @@
<?php
/**
* OpenSQLManager
*
* Free Database manager for Open Source Databases
*
* @author Timothy J. Warren
* @copyright Copyright (c) 2012
* @link https://github.com/aviat4ion/OpenSQLManager
* @license http://philsturgeon.co.uk/code/dbad-license
*/
// --------------------------------------------------------------------------
/**
* Window controlling addtion of database connections
*/
class Add_DB extends GtkWindow {
function __construct()
{
parent::__construct();
}
}
// End of add_db.php