diff options
Diffstat (limited to 'includes/libs/libmysql.php')
-rw-r--r-- | includes/libs/libmysql.php | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/includes/libs/libmysql.php b/includes/libs/libmysql.php new file mode 100644 index 0000000..5a3a06c --- /dev/null +++ b/includes/libs/libmysql.php @@ -0,0 +1,89 @@ +<?php + +require_once "includes/conf/mysql.conf.php"; + +class Database +{ + // implement singleton pattern + static private $instance = null; + + private $conn; + + static public function getInstance() + { + if (null === self::$instance) + { + self::$instance = new self; + } + return self::$instance; + } + + // ctor + private function __construct() + { + global $conf; + $this->conn = mysql_connect( $conf['mysql_hostname'], + $conf['mysql_username'], + $conf['mysql_password'] ) + or die ("Connection to database failed!" . mysql_error()); + + mysql_select_db( $conf['mysql_database'], $this->conn ) + or die ("Selection of database failed! " . mysql_error()); + } + + private function checkConnect() + { + if (!isset($this->conn)) + { + die("Not connected to database"); + } + } + + // returns the value in the first row and column + public function getValue( $sql ) + { + $this->checkConnect(); + + $res = mysql_query( $sql, $this->conn ); + if (!$res) + { + die('Error while calling database: ' . mysql_error()); + } + $vals = mysql_fetch_row( $res ); + mysql_free_result( $res ); + return $vals[0]; + } + + // executes some sql and returns affected rows + public function exec( $sql ) + { + $this->checkConnect(); + + $res = mysql_query( $sql, $this->conn ); + if (!$res) + { + die('Error while calling database: ' . mysql_error()); + } + $numrows = mysql_affected_rows( $this->conn ); + return $numrows; + } + + public function escape( $string ) + { + $this->checkConnect(); + + return mysql_real_escape_string( $string, $this->conn ); + } + + public function disconnect() + { + if ( mysql_ping( $this->conn ) ) + { + mysql_close( $this->conn ); + } + } + +} + + +?>
\ No newline at end of file |