|
|
|
<?php
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Copyright © 2021 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\Interfaces;
|
|
|
|
|
|
|
|
interface Databases {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Construct the connection.
|
|
|
|
*
|
|
|
|
* @param string $hostname
|
|
|
|
* @param string $username
|
|
|
|
* @param string $password
|
|
|
|
* @param string $database
|
|
|
|
* @param string $port Is optional
|
|
|
|
* @param string $charset Is optional
|
|
|
|
* @return void
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public function __construct($hostname, $username, $password, $database);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Execute the SQL Query.
|
|
|
|
*
|
|
|
|
* @param string $sql
|
|
|
|
* @return \Phacil\Framework\Databases\Object\ResultInterface|true
|
|
|
|
* @throws Exception
|
|
|
|
*/
|
|
|
|
public function query($sql);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 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|string */
|
|
|
|
public function getLastId();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Check is connected on database
|
|
|
|
* @return bool */
|
|
|
|
public function isConnected();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Destroy the connection
|
|
|
|
*
|
|
|
|
* @return void */
|
|
|
|
public function __destruct();
|
|
|
|
}
|