Does this code fine for database reusability?
<?php
/**
* Database
*
* Class for handling database connections
*
*
* @category Global Class
* @copyright ---
* @license ---
* @version 1.0
* @link ---
* @since File available since Release 1.0
* @created ---
* @modified ---
* @author Original Author <--->
* @author Future Author <--->
*/
class Database
{
private $database_connection = null;
public function __construct( $database_id )
{
$database_host = '';
$database_name = '';
$database_username = '';
$database_password = '';
switch ( $database_id ) {
case 'db1':
$database_host = 'host';
$database_name = 'name';
$database_username = 'user';
$database_password = 'pass';
break;
case 'db2':
$database_host = 'host';
$database_name = 'name';
$database_username = 'user';
$database_password = 'pass';
break;
default:
trigger_error( 'Undefined database id', E_USER_ERROR );
}
try {
$this->database_connection = new PDO( "mysql:host={$database_host};
dbname={$database_name}",
$database_username,
$database_password );
$this->database_connection->setAttribute( PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION );
} catch ( PDOException $pdo_exception ) {
trigger_error( $pdo_exception, E_USER_ERROR );
}
if ( empty( $this->database_connection ) ) {
trigger_error( 'Undefined database connection', E_USER_ERROR );
}
}
public function execute_query( $query, $statement_id, $values )
{
$statement = $this->database_connection->prepare( $query );
if ( $statement_id == 'db1' ) {
$statement->bindParam( ':id', $values[ 0 ] );
} else if ( $statement_id == 'db2' ) {
$statement->bindParam( ':id1', $values[ 0 ] );
$statement->bindParam( ':id2', $values[ 1 ] );
} else {
trigger_error( 'Undefined statement id', E_USER_ERROR );
}
$statement->execute();
return $statement;
}
}
?>
and call it here like this?
<?php
require once( "database.php" );
$database_1 = new Database( "db1" );
$database_2 = new Database( "db2" );
$database_1->execute_query( "SELECT * FROM user WHERE id = :id", "db1", array( 0 ) );
$database_1->execute_query( "SELECT * FROM user WHERE id = :id", "db1", array( 1 ) );
$database_2->execute_query( "SELECT * FROM user WHERE id = :id1 AND id2 = :id2", "db2", array( 0, 1 ) );
$database_2->execute_query( "SELECT * FROM user WHERE id = :id1 AND id2 = :id2", "db2", array( 2, 3 ) );
?>