113 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php if(count(get_included_files()) ==1) exit("Direct access not permitted.");
 | |
| 
 | |
| class Database
 | |
| {
 | |
| 	/* @var PDO $PDO */
 | |
| 	public static $PDO = NULL;
 | |
| 
 | |
| 	public static function connect()
 | |
| 	{
 | |
| 		global $CONFIG;
 | |
| 
 | |
| 		if (self::$PDO !== NULL) return;
 | |
| 
 | |
| 		$dsn = "mysql:host=" . $CONFIG['host'] . ";dbname=" . $CONFIG['database'] . ";charset=utf8";
 | |
| 		$opt = [
 | |
| 			PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
 | |
| 			PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
 | |
| 			PDO::ATTR_EMULATE_PREPARES   => false,
 | |
| 		];
 | |
| 
 | |
| 		self::$PDO = new PDO($dsn, $CONFIG['user'], $CONFIG['password'], $opt);
 | |
| 	}
 | |
| 
 | |
| 	public static function tryconnect()
 | |
| 	{
 | |
| 		try {
 | |
| 			self::connect();
 | |
| 			return true;
 | |
| 		} catch (exception $e) {
 | |
| 			return false;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_num($query)
 | |
| 	{
 | |
| 		$r = self::$PDO->query($query)->fetch(PDO::FETCH_NUM)[0];
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_num_prep($query, $params)
 | |
| 	{
 | |
| 		$stmt = self::$PDO->prepare($query);
 | |
| 		
 | |
| 		foreach ($params as $p) 
 | |
| 		{
 | |
| 			if (strpos($query, $p[0]) !== FALSE) $stmt->bindValue($p[0], $p[1], $p[2]);
 | |
| 		}
 | |
| 
 | |
| 		$stmt->execute();
 | |
| 		$r = $stmt->fetch(PDO::FETCH_NUM)[0];
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_assoc($query)
 | |
| 	{
 | |
| 		$r = self::$PDO->query($query)->fetchAll(PDO::FETCH_ASSOC);
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_assoc_prep($query, $params)
 | |
| 	{
 | |
| 		$stmt = self::$PDO->prepare($query);
 | |
| 		
 | |
| 		foreach ($params as $p) 
 | |
| 		{
 | |
| 			if (strpos($query, $p[0]) !== FALSE) $stmt->bindValue($p[0], $p[1], $p[2]);
 | |
| 		}
 | |
| 
 | |
| 		$stmt->execute();
 | |
| 		$r = $stmt->fetchAll(PDO::FETCH_ASSOC);
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_single($query)
 | |
| 	{
 | |
| 		$r = self::$PDO->query($query)->fetch(PDO::FETCH_ASSOC);
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_query_single_prep($query, $params)
 | |
| 	{
 | |
| 		$stmt = self::$PDO->prepare($query);
 | |
| 		
 | |
| 		foreach ($params as $p) 
 | |
| 		{
 | |
| 			if (strpos($query, $p[0]) !== FALSE) $stmt->bindValue($p[0], $p[1], $p[2]);
 | |
| 		}
 | |
| 
 | |
| 		$stmt->execute();
 | |
| 		$r = $stmt->fetch(PDO::FETCH_ASSOC);
 | |
| 
 | |
| 		return $r;
 | |
| 	}
 | |
| 
 | |
| 	public static function sql_exec_prep($query, $params)
 | |
| 	{
 | |
| 		$stmt = self::$PDO->prepare($query);
 | |
| 
 | |
| 		foreach ($params as $p)
 | |
| 		{
 | |
| 			if (strpos($query, $p[0]) !== FALSE) $stmt->bindValue($p[0], $p[1], $p[2]);
 | |
| 		}
 | |
| 
 | |
| 		$stmt->execute();
 | |
| 
 | |
| 		return $stmt->rowCount();
 | |
| 	}
 | |
| } |