101 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
class Db{
 | 
						|
	private static $join;
 | 
						|
	private static $commandDatabase = array (
 | 
						|
		PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
 | 
						|
		PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
 | 
						|
		PDO::ATTR_EMULATE_PREPARES => false
 | 
						|
	);
 | 
						|
 | 
						|
	public static function connect ($host, $user, $password, $database) {
 | 
						|
		if (!isset (self::$join)) {
 | 
						|
			self::$join = @new PDO(
 | 
						|
				"mysql:host=$host;dbname=$database;charset=utf8",
 | 
						|
				$user,
 | 
						|
				$password,
 | 
						|
				self::$commandDatabase
 | 
						|
			);
 | 
						|
			self::$join->exec ("set names utf8");
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function disconect(){
 | 
						|
		self::$join = null;
 | 
						|
	}
 | 
						|
 | 
						|
	public static function loadOne ($sql, $values = array (), $numberKey = false) {
 | 
						|
		$answer = self::$join->prepare ($sql);
 | 
						|
		$answer->execute ($values);
 | 
						|
		if (!$numberKey) {
 | 
						|
			return $answer->fetch (PDO::FETCH_ASSOC);
 | 
						|
		} else {
 | 
						|
			return $answer->fetch (PDO::FETCH_NUM);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function command ($sql, $values = array()) {
 | 
						|
		$answer = self::$join->prepare ($sql);
 | 
						|
		return $answer->execute ($values);
 | 
						|
	}
 | 
						|
 | 
						|
	public static function loadAll ($sql, $values = array(), $numberKey = false) {
 | 
						|
		$answer = self::$join->prepare ($sql);
 | 
						|
		$answer->execute ($values);
 | 
						|
		if (!$numberKey) {
 | 
						|
			return $answer->fetchALL (PDO::FETCH_ASSOC);
 | 
						|
		} else {
 | 
						|
			return $answer->fetchALL (PDO::FETCH_NUM);
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	public static function loadAlone ($sql, $values = array()) {
 | 
						|
		$answer = self::$join->prepare ($sql);
 | 
						|
		$answer->execute ($values);
 | 
						|
		return $answer->fetch (PDO::FETCH_NUM)[0];
 | 
						|
	}
 | 
						|
 | 
						|
	public static function add ($table, $values = array()) {
 | 
						|
		return self::command (
 | 
						|
			"INSERT INTO `$table` (`" .
 | 
						|
				implode('`, `', array_keys($values)) .
 | 
						|
				"`) VALUES (" .
 | 
						|
					str_repeat('?,', (count($values) > 0 ? count($values)-1 : 0)) .
 | 
						|
					"?)"
 | 
						|
					, array_values ($values));
 | 
						|
				}
 | 
						|
				// TODO: pokud vlozim prazdne pole tak chyba ??
 | 
						|
				public static function addAll ($table, $values = array ()) {
 | 
						|
					try {
 | 
						|
						foreach ($values as $value) {
 | 
						|
							self::add ($table, $value);
 | 
						|
						}
 | 
						|
					} catch (PDOException $ex) {
 | 
						|
						throw new PDOException ($ex->getMessage());
 | 
						|
					}
 | 
						|
				}
 | 
						|
 | 
						|
				public static function edit (
 | 
						|
					$table,
 | 
						|
					$values = array(),
 | 
						|
					$conditions,
 | 
						|
					$values2 = array()
 | 
						|
				) {
 | 
						|
					return self::command (
 | 
						|
						"UPDATE `$table` SET `" .
 | 
						|
						implode('` =?, `', array_keys($values)) .
 | 
						|
						"` =? " .
 | 
						|
						$conditions
 | 
						|
						, array_merge (array_values ($values), $values2));
 | 
						|
					}
 | 
						|
 | 
						|
					public static function insertId () {
 | 
						|
						return self::$join->lastInsertId ();
 | 
						|
					}
 | 
						|
 | 
						|
					public static function addId ($lastTable, $lastIdName) {
 | 
						|
						$answer = self::$join->prepare ("SELECT `$lastIdName` FROM `$lastTable` ORDER BY `$lastIdName` DESC");
 | 
						|
						$answer->execute ();
 | 
						|
						return $answer->fetch (PDO::FETCH_NUM)[0];
 | 
						|
					}
 | 
						|
				}
 |