A super easy PHP Framework for web development!
				https://github.com/exacti/phacil-framework
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							124 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
	
	
							124 lines
						
					
					
						
							2.9 KiB
						
					
					
				<?php
 | 
						|
/**
 | 
						|
 * Copyright © 2024 ExacTI Technology Solutions. All rights reserved.
 | 
						|
 * GPLv3 General License.
 | 
						|
 * https://exacti.com.br
 | 
						|
 * Phacil PHP Framework - https://github.com/exacti/phacil-framework
 | 
						|
 */
 | 
						|
 | 
						|
namespace Phacil\Framework\Api;
 | 
						|
 | 
						|
/**
 | 
						|
 * Database interface
 | 
						|
 * @api
 | 
						|
 * @since 2.0.0
 | 
						|
 * @package Phacil\Framework\Api
 | 
						|
 */
 | 
						|
interface Database {
 | 
						|
	/**
 | 
						|
	 * Construct the connection.
 | 
						|
	 * 
 | 
						|
	 * @param string $driver 
 | 
						|
	 * @param string $hostname 
 | 
						|
	 * @param string $username 
 | 
						|
	 * @param string $password 
 | 
						|
	 * @param string $database 
 | 
						|
	 * @return void 
 | 
						|
	 */
 | 
						|
	public function __construct($driver, $hostname, $username, $password, $database);
 | 
						|
 | 
						|
 | 
						|
	/** 
 | 
						|
	 * Check is connected on database
 | 
						|
	 * @return bool  
 | 
						|
	 **/
 | 
						|
	public function isConnected();
 | 
						|
 | 
						|
	/** 
 | 
						|
	 * Destroy the connection
 | 
						|
	 * 
 | 
						|
	 * @return void  
 | 
						|
	 */
 | 
						|
	public function __destruct();
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Execute the SQL Query
 | 
						|
	 * 
 | 
						|
	 * @param string|null $sql 
 | 
						|
	 * @param bool $cacheUse 
 | 
						|
	 * @return \Phacil\Framework\Databases\Object\ResultInterface|\Phacil\Framework\Database::Cache|\Phacil\Framework\MagiQL 
 | 
						|
	 * @throws PhpfastcacheInvalidArgumentException 
 | 
						|
	 */
 | 
						|
	public function query($sql = null, $cacheUse = true);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Important escape to prevent SQL injection.
 | 
						|
	 * 
 | 
						|
	 * @param string $value 
 | 
						|
	 * @return string 
 | 
						|
	 */
 | 
						|
	public function escape($value);
 | 
						|
 | 
						|
	/** 
 | 
						|
	 * Gets the number of rows affected by the last operation
 | 
						|
	 * 
 | 
						|
	 * @return int 
 | 
						|
	 */
 | 
						|
	public function countAffected();
 | 
						|
 | 
						|
	/** 
 | 
						|
	 * Gets the ID of the last inserted row or sequence of values
 | 
						|
	 * 
 | 
						|
	 * @return int  
 | 
						|
	 */
 | 
						|
	public function getLastId();
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param string $sql 
 | 
						|
	 * @param int $pageNum_exibe 
 | 
						|
	 * @param int $maxRows_exibe 
 | 
						|
	 * @param bool $cache 
 | 
						|
	 * @param string|null $sqlTotal 
 | 
						|
	 * @return object 
 | 
						|
	 * @deprecated 2.0.0 This method as no longer maintained and will be removed on any 2.x further version (not defined yet). 
 | 
						|
	 * @deprecated Use MaqiQL class (\Phacil\Framework\MagiQL) instead.
 | 
						|
	 * @see \Phacil\Framework\MagiQL To use statement queries for more secure and relialable code.
 | 
						|
	 * @throws PhpfastcacheInvalidArgumentException 
 | 
						|
	 */
 | 
						|
	public function pagination($sql, $pageNum_exibe = 1, $maxRows_exibe = 10, $cache = true, $sqlTotal = null);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * @param string $nome 
 | 
						|
	 * @param object $object 
 | 
						|
	 * @return void 
 | 
						|
	 */
 | 
						|
	public function createSubBase($nome, $object);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Execute a prepared statement with parameters
 | 
						|
	 *
 | 
						|
	 * @param string $sql SQL query with named placeholders
 | 
						|
	 * @param array $params Associative array of parameters
 | 
						|
	 * @return \Phacil\Framework\Databases\Object\ResultInterface|true
 | 
						|
	 * @throws \Phacil\Framework\Exception 
 | 
						|
	 */
 | 
						|
	public function execute($sql, array $params = []);
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Textual database driver type
 | 
						|
	 * @return string 
 | 
						|
	 */
 | 
						|
	public function getDBType();
 | 
						|
 | 
						|
	/**
 | 
						|
	 * ID of database driver
 | 
						|
	 * 
 | 
						|
	 * @return int 1 = MySQL/MariaDB
 | 
						|
	 * @return int 2 = MS SQL Server
 | 
						|
	 * @return int 3 = Oracle Database
 | 
						|
	 * @return int 4 = Postgre 
 | 
						|
	 * @return int 5 = SQLite3
 | 
						|
	 * @return int 0 = NULL 
 | 
						|
	 */
 | 
						|
	public function getDBTypeId();
 | 
						|
}
 | 
						|
 |