Add database wrapper class and new connection method

Uses the Singleton pattern to ensure all queries use the same
database connection that is released upon script completion.

All database connections should now be called with DB::connect() and
not db_connect().

Signed-off-by: canyonknight <canyonknight@gmail.com>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
This commit is contained in:
canyonknight 2013-02-03 16:26:28 +00:00 committed by Lukas Fleischer
parent b3a2b6c4a5
commit 8e03e68d68
10 changed files with 112 additions and 102 deletions

28
web/lib/DB.class.php Normal file
View file

@ -0,0 +1,28 @@
<?php
class DB {
/**
* A database object
*/
private static $dbh = null;
/**
* Return an already existing database object or newly instantiated object
*
* @return \PDO A database connection using PDO
*/
public static function connect() {
if (self::$dbh === null) {
try {
self::$dbh = new PDO(AUR_db_DSN_prefix . ":" . AUR_db_host
. ";dbname=" . AUR_db_name, AUR_db_user, AUR_db_pass);
self::$dbh->exec("SET NAMES 'utf8' COLLATE 'utf8_general_ci';");
} catch (PDOException $e) {
die('Error - Could not connect to AUR database');
}
}
return self::$dbh;
}
}