Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Database
- {
- protected static $instance = null;
- final private function __construct()
- {
- }
- final private function __clone()
- {
- }
- /**
- * @return PDO
- */
- public static function instance()
- {
- if (self::$instance === null) {
- try {
- self::$instance = new PDO(DB_DSN, DB_USER, DB_PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
- self::$instance->setAttribute(PDO::ATTR_PERSISTENT, true);
- /* * ************************** Persient tilkoblinger * */
- #self::$instance->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'"); /****** UTF-8 **/
- self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- /* * *********** Feilmeldingsmodus * */
- self::$instance->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
- /* * ************ Mysql buffered query * */
- self::$instance->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
- /* * ****** Default fetch metode * */
- } catch (PDOException $e) {
- die('Kunne ikke opprette tilkobling til databasen!');
- }
- }
- return self::$instance;
- }
- /**
- * Update
- *
- * @access public
- */
- public static function update($table, $values, $where)
- {
- try {
- if (gettype($values) !== 'array') {
- exit('Upt: Param må være aray!');
- }
- $sql = 'UPDATE ' . $table . ' SET ';
- $fields = array();
- foreach ($values as $key => $value) {
- if (gettype($value) === 'string')
- $y = '\'' . $value . '\'';
- array_push($fields, ($key . '=' . $value));
- }
- $update = implode(', ', $fields);
- $sql = $sql . $update . ' WHERE ' . $where;
- return self::$instance->query($sql);
- } catch (Exception $e) {
- return $e->getMessage() . ':' . $e->getLine();
- }
- }
- /**
- * @return PDOStatement
- */
- public static function q($query)
- {
- if (func_num_args() == 1) {
- return self::instance()->query($query);
- }
- $args = func_get_args();
- return self::instance()->query(self::autoQuote(array_shift($args), $args));
- }
- public static function x($query)
- {
- if (func_num_args() == 1) {
- return self::instance()->exec($query);
- }
- $args = func_get_args();
- return self::instance()->exec(self::autoQuote(array_shift($args), $args));
- }
- public static function autoQuote($query, array $args)
- {
- $i = strlen($query) - 1;
- $c = count($args);
- while ($i--) {
- if ('?' === $query[$i] && false !== $type = strpos('sia', $query[$i + 1])) {
- if (--$c < 0) {
- throw new InvalidArgumentException('For få parametere!');
- }
- if (0 === $type) {
- $replace = self::instance()->quote($args[$c]);
- }
- elseif (1 === $type) {
- $replace = intval($args[$c]);
- }
- elseif (2 === $type) {
- foreach ($args[$c] as &$value) {
- $value = self::instance()->quote($value);
- }
- $replace = '(' . implode(',', $args[$c]) . ')';
- }
- $query = substr_replace($query, $replace, $i, 2);
- }
- }
- if ($c > 0) {
- throw new InvalidArgumentException('For mange parametere!');
- }
- return $query;
- }
- public static function beginTransaction()
- {
- return self::instance()->beginTransaction();
- }
- public static function commit()
- {
- return self::instance()->commit();
- }
- public static function errorCode()
- {
- return self::instance()->errorCode();
- }
- public static function errorInfo()
- {
- return self::instance()->errorInfo();
- }
- public static function exec($statement)
- {
- return self::instance()->exec($statement);
- }
- public static function getAttribute($attribute)
- {
- return self::instance()->getAttribute($attribute);
- }
- public static function getAvailableDrivers()
- {
- return self::instance()->getAvailableDrivers();
- }
- public static function inTransaction()
- {
- return self::instance()->inTransaction();
- }
- public static function lastInsertId($name = NULL)
- {
- return self::instance()->lastInsertId($name);
- }
- public static function prepare($statement, $driver_options = array())
- {
- return self::instance()->prepare($statement, $driver_options);
- }
- public static function query()
- {
- $arguments = func_get_args();
- return call_user_func_array(array(self::instance(), 'query'), $arguments);
- }
- public static function quote($string, $parameter_type = PDO::PARAM_STR)
- {
- return self::instance()->quote($string, $parameter_type);
- }
- public static function rollBack()
- {
- return self::instance()->rollBack();
- }
- public static function setAttribute($attribute, $value)
- {
- return self::instance()->setAttribute($attribute, $value);
- }
- public static function Rows()
- {
- $row = self::instance()->query('SELECT found_rows() AS rows');
- foreach ($row->fetchAll(PDO::FETCH_OBJ) as $obj)
- $rowsAntall = $obj->rows;
- $row->closeCursor();
- return $rowsAntall;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement