New upstream version 3.5.0
This commit is contained in:
@@ -1,68 +1,60 @@
|
||||
<?php
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Common utilities
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// (c) 2005-2018 by Martin Willisegger
|
||||
//
|
||||
// Project : Common scripts
|
||||
// Component : MySQLi data processing class
|
||||
// Website : https://sourceforge.net/projects/nagiosql/
|
||||
// Version : 3.4.0
|
||||
// GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Class: Common database functions for MySQL (mysqli database module)
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Includes any functions to communicate with an MySQL database server
|
||||
//
|
||||
// Name: MysqliDbClass
|
||||
//
|
||||
// Class variables: $arrParams Array including the server settings
|
||||
// ---------------- $strErrorMessage Database error string
|
||||
// $error Boolean - Error true/false
|
||||
// $strDBId Database connection id
|
||||
// $intLastId ID of last dataset
|
||||
// $intAffectedRows Counter variable of all affected data dows
|
||||
// $booSSLuse Use SSL connection
|
||||
//
|
||||
// Parameters: $arrParams['server'] -> DB server name
|
||||
// ----------- $arrParams['port'] -> DB server port
|
||||
// $arrParams['user'] -> DB server username
|
||||
// $arrParams['password'] -> DB server password
|
||||
// $arrParams['database'] -> DB server database name
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
NagiosQL
|
||||
-------------------------------------------------------------------------------
|
||||
(c) 2005-2022 by Martin Willisegger
|
||||
|
||||
Project : NagiosQL
|
||||
Component : MySQLi data processing class
|
||||
Website : https://sourceforge.net/projects/nagiosql/
|
||||
Version : 3.5.0
|
||||
GIT Repo : https://gitlab.com/wizonet/NagiosQL
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
Class: Common database functions for MySQL (mysqli database module)
|
||||
-------------------------------------------------------------------------------
|
||||
Includes any functions to communicate with an MySQL database server
|
||||
Name: MysqliDbClass
|
||||
Class variables: $arrParams Array including the server settings
|
||||
$strErrorMessage Database error string
|
||||
$error Boolean - Error true/false
|
||||
$strDBId Database connection id
|
||||
$intLastId ID of last dataset
|
||||
$intAffectedRows Counter variable of all affected data dows
|
||||
$booSSLuse Use SSL connection
|
||||
|
||||
Parameters: $arrParams['server'] -> DB server name
|
||||
$arrParams['port'] -> DB server port
|
||||
$arrParams['user'] -> DB server username
|
||||
$arrParams['password'] -> DB server password
|
||||
$arrParams['database'] -> DB server database name
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
namespace functions;
|
||||
|
||||
class MysqliDbClass
|
||||
{
|
||||
// Define class variables
|
||||
public $error = false; // Will be filled in functions
|
||||
public $strDBId; // Will be filled in functions
|
||||
public $intLastId = 0; // Will be filled in functions
|
||||
public $intAffectedRows = 0; // Will be filled in functions
|
||||
public $strErrorMessage = ''; // Will be filled in functions
|
||||
public $booSSLuse = false; // Defines if SSL is used or not
|
||||
public $arrParams = array(); // Must be filled in while initialization
|
||||
/* Define class variables */
|
||||
public $error = false; /* Will be filled in functions */
|
||||
public $strDBId; /* Will be filled in functions */
|
||||
public $intLastId = 0; /* Will be filled in functions */
|
||||
public $intAffectedRows = 0; /* Will be filled in functions */
|
||||
public $strErrorMessage = ''; /* Will be filled in functions */
|
||||
public $booSSLuse = false; /* Defines if SSL is used or not */
|
||||
public $arrParams = array(); /* Must be filled in while initialization */
|
||||
|
||||
/**
|
||||
* MysqliDbClass constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->arrParams['server'] = '';
|
||||
$this->arrParams['port'] = 0;
|
||||
$this->arrParams['username'] = '';
|
||||
$this->arrParams['password'] = '';
|
||||
$this->arrParams['database'] = '';
|
||||
$this->arrParams['server'] = '';
|
||||
$this->arrParams['port'] = 0;
|
||||
$this->arrParams['username'] = '';
|
||||
$this->arrParams['password'] = '';
|
||||
$this->arrParams['database'] = '';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -74,21 +66,162 @@ class MysqliDbClass
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a connection to the database server and select a database
|
||||
* @param int $intMode 1 = connect only / 0 = connect + dbselect
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* Close database server connectuon
|
||||
* @return bool true = successful / false = error
|
||||
* @noinspection PhpReturnValueOfMethodIsNeverUsedInspection
|
||||
*/
|
||||
public function hasDBConnection($intMode = 0)
|
||||
private function dbDisconnect(): bool
|
||||
{
|
||||
return mysqli_close($this->strDBId);
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a connection to the database server and select a database
|
||||
* @param int $intMode 1 = connect only / 0 = connect + dbselect
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function hasDBConnection(int $intMode = 0): bool
|
||||
{
|
||||
$booReturn = true;
|
||||
$this->dbconnect();
|
||||
if ($this->error == true) {
|
||||
if ($this->error === true) {
|
||||
$booReturn = false;
|
||||
}
|
||||
if (($booReturn == true) && ($intMode == 0)) {
|
||||
if (($booReturn === true) && ($intMode === 0)) {
|
||||
$this->dbselect();
|
||||
if ($this->error == true) {
|
||||
if ($this->error === true) {
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
return $booReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect to database server
|
||||
* @param string $dbserver Server name
|
||||
* @param int $dbport TCP port
|
||||
* @param string $dbuser Database user
|
||||
* @param string $dbpasswd Database password
|
||||
* @return void true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* @noinspection PhpMissingParamTypeInspection
|
||||
* @noinspection PhpSameParameterValueInspection
|
||||
*/
|
||||
private function dbconnect($dbserver = null, int $dbport = 0, $dbuser = null, $dbpasswd = null): void
|
||||
{
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
/* Get parameters */
|
||||
if ($dbserver === null) {
|
||||
$dbserver = $this->arrParams['server'];
|
||||
}
|
||||
if ($dbport === 0) {
|
||||
$dbport = $this->arrParams['port'];
|
||||
}
|
||||
if ($dbuser === null) {
|
||||
$dbuser = $this->arrParams['username'];
|
||||
}
|
||||
if ($dbpasswd === null) {
|
||||
$dbpasswd = $this->arrParams['password'];
|
||||
}
|
||||
/* Not all parameters available */
|
||||
if (($dbserver === '') || ($dbuser === '') || ($dbpasswd === '')) {
|
||||
$this->strErrorMessage .= gettext('Missing server connection parameter!') . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
if ($booReturn === true) {
|
||||
$this->dbinit();
|
||||
/* if ($this->booSSLuse === true) {
|
||||
TODO: TO BE DEFINED
|
||||
}*/
|
||||
$intErrorReporting = error_reporting();
|
||||
error_reporting(0);
|
||||
if ($dbport === 0) {
|
||||
$booReturn = mysqli_real_connect($this->strDBId, $dbserver, $dbuser, $dbpasswd);
|
||||
} else {
|
||||
$booReturn = mysqli_real_connect($this->strDBId, $dbserver, $dbuser, $dbpasswd, null, $dbport);
|
||||
}
|
||||
error_reporting($intErrorReporting);
|
||||
// Connection fails
|
||||
if ($booReturn === false) {
|
||||
$this->strErrorMessage = '[' . $dbserver . '] ' . gettext('Connection to the database server has failed '
|
||||
. 'by reason:') . ' ::';
|
||||
$strError = mysqli_connect_error();
|
||||
$this->strErrorMessage .= $strError . '::';
|
||||
$this->error = true;
|
||||
}
|
||||
/** PHP8 exception handling */
|
||||
mysqli_report(MYSQLI_REPORT_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize a mysql database connection
|
||||
* @return bool true = successful / false = error
|
||||
* @noinspection PhpReturnValueOfMethodIsNeverUsedInspection
|
||||
*/
|
||||
private function dbinit(): bool
|
||||
{
|
||||
$this->strDBId = mysqli_init();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select a database
|
||||
* @param string $database Database name
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* @noinspection PhpReturnValueOfMethodIsNeverUsedInspection
|
||||
* @noinspection PhpMissingParamTypeInspection
|
||||
* @noinspection PhpSameParameterValueInspection
|
||||
*/
|
||||
private function dbselect($database = null): bool
|
||||
{
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
/* Get parameters */
|
||||
if ($database === null) {
|
||||
$database = $this->arrParams['database'];
|
||||
}
|
||||
/* Not all parameters available */
|
||||
if ($database === '') {
|
||||
$this->strErrorMessage .= gettext('Missing database connection parameter!') . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
if ($booReturn === true) {
|
||||
$intErrorReporting = error_reporting();
|
||||
error_reporting(0);
|
||||
$bolConnect = mysqli_select_db($this->strDBId, $database);
|
||||
error_reporting($intErrorReporting);
|
||||
/* Session cannot be etablished */
|
||||
if (!$bolConnect) {
|
||||
$this->strErrorMessage .= '[' . $database . '] ' .
|
||||
gettext('Connection to the database has failed by reason:') . ' ::';
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
if ($booReturn === true) {
|
||||
mysqli_query($this->strDBId, "set names 'utf8'");
|
||||
if (mysqli_error($this->strDBId) !== '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
if ($booReturn === true) {
|
||||
mysqli_query($this->strDBId, "set session sql_mode = 'NO_ENGINE_SUBSTITUTION'");
|
||||
if (mysqli_error($this->strDBId) !== '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
@@ -97,112 +230,115 @@ class MysqliDbClass
|
||||
|
||||
/**
|
||||
* Sends an SQL statement to the server and returns the result of the first data field
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return string <data> = successful / <empty> = error
|
||||
* Status messages are stored in class variable
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return string <data> = successful / <empty> = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function getFieldData($strSQL)
|
||||
public function getFieldData(string $strSQL): string
|
||||
{
|
||||
// Reset error variables
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$strReturn = '';
|
||||
// Send the SQL statement to the server
|
||||
$this->error = false;
|
||||
$strReturn = '';
|
||||
/* Send the SQL statement to the server */
|
||||
$resQuery = mysqli_query($this->strDBId, $strSQL);
|
||||
// Error processing
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == '')) {
|
||||
// Return the field value from position 0/0
|
||||
/* Error processing */
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) !== 0) && (mysqli_error($this->strDBId) === '')) {
|
||||
/* Return the field value from position 0/0 */
|
||||
$arrDataset = mysqli_fetch_array($resQuery, MYSQLI_NUM);
|
||||
$strReturn = $arrDataset[0];
|
||||
} elseif (mysqli_error($this->strDBId) != '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
if ($strReturn === null) {
|
||||
$strReturn = '';
|
||||
}
|
||||
} elseif (mysqli_error($this->strDBId) !== '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
}
|
||||
return $strReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an SQL statement to the server and returns the result of the first data set
|
||||
* @param string $strSQL SQL Statement
|
||||
* @param array|null $arrDataset Result array (by reference)
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* @param string $strSQL SQL Statement
|
||||
* @param array|null $arrDataset Result array (by reference)
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function hasSingleDataset($strSQL, &$arrDataset)
|
||||
public function hasSingleDataset(string $strSQL, ?array &$arrDataset): bool
|
||||
{
|
||||
//$arrDataset = array();
|
||||
$booReturn = true;
|
||||
// Reset error variables
|
||||
$arrDataset = array();
|
||||
$booReturn = true;
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
// Send the SQL statement to the server
|
||||
$this->error = false;
|
||||
/* Send the SQL statement to the server */
|
||||
$resQuery = mysqli_query($this->strDBId, $strSQL);
|
||||
// Error processing
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == '')) {
|
||||
// Put the values into the array
|
||||
/* Error processing */
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) !== 0) && (mysqli_error($this->strDBId) === '')) {
|
||||
/* Put the values into the array */
|
||||
$arrDataset = mysqli_fetch_array($resQuery, MYSQLI_ASSOC);
|
||||
} elseif (mysqli_error($this->strDBId) != '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
} elseif (mysqli_error($this->strDBId) !== '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
return $booReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an SQL statement to the server and returns the result of all dataset in a data array
|
||||
* @param string $strSQL SQL Statement
|
||||
* @param array $arrDataset Result array (by reference)
|
||||
* @param int $intDataCount Number of data result sets
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* @param string $strSQL SQL Statement
|
||||
* @param array|null $arrDataset Result array (by reference)
|
||||
* @param int|null $intDataCount Number of data result sets
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function hasDataArray($strSQL, &$arrDataset, &$intDataCount)
|
||||
public function hasDataArray(string $strSQL, array &$arrDataset = null, int &$intDataCount = null): bool
|
||||
{
|
||||
$arrDataset = array();
|
||||
$arrDataset = array();
|
||||
$intDataCount = 0;
|
||||
$booReturn = true;
|
||||
// Reset error variables
|
||||
$booReturn = true;
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
// Send the SQL statement to the server
|
||||
$this->error = false;
|
||||
/* Send the SQL statement to the server */
|
||||
$resQuery = mysqli_query($this->strDBId, $strSQL);
|
||||
// Error processing
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) != 0) && (mysqli_error($this->strDBId) == '')) {
|
||||
$intDataCount = mysqli_num_rows($resQuery);
|
||||
/* Error processing */
|
||||
if ($resQuery && (mysqli_num_rows($resQuery) !== 0) && (mysqli_error($this->strDBId) === '')) {
|
||||
$intDataCount = (int)mysqli_num_rows($resQuery);
|
||||
$intCount = 0;
|
||||
// Put the values into the array
|
||||
/* Put the values into the array */
|
||||
while ($arrDataTemp = mysqli_fetch_array($resQuery, MYSQLI_ASSOC)) {
|
||||
foreach ($arrDataTemp as $key => $value) {
|
||||
$arrDataset[$intCount][$key] = $value;
|
||||
}
|
||||
$intCount++;
|
||||
}
|
||||
} elseif (mysqli_error($this->strDBId) != '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
} elseif (mysqli_error($this->strDBId) !== '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId) . '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
return $booReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert/update or delete data
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function insertData($strSQL)
|
||||
public function insertData(string $strSQL): bool
|
||||
{
|
||||
// Reset error variables
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$booReturn = false;
|
||||
// Send the SQL statement to the server
|
||||
if ($strSQL != '') {
|
||||
$this->error = false;
|
||||
$booReturn = false;
|
||||
/* Send the SQL statement to the server */
|
||||
if ($strSQL !== '') {
|
||||
mysqli_query($this->strDBId, $strSQL);
|
||||
// Error processing
|
||||
if (mysqli_error($this->strDBId) == '') {
|
||||
/* Error processing */
|
||||
if (mysqli_error($this->strDBId) === '') {
|
||||
$this->intLastId = mysqli_insert_id($this->strDBId);
|
||||
$this->intAffectedRows = mysqli_affected_rows($this->strDBId);
|
||||
$booReturn = true;
|
||||
@@ -216,197 +352,65 @@ class MysqliDbClass
|
||||
|
||||
/**
|
||||
* Count the sum of data records
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return int <number> = successful / 0 = no dataset or error
|
||||
* Status messages are stored in class variable
|
||||
* @param string $strSQL SQL Statement
|
||||
* @return int <number> = successful / 0 = no dataset or error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
public function countRows($strSQL)
|
||||
public function countRows(string $strSQL): int
|
||||
{
|
||||
// Reset error variables
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$intReturn = 0;
|
||||
// Send the SQL statement to the server
|
||||
$this->error = false;
|
||||
$intReturn = 0;
|
||||
/* Send the SQL statement to the server */
|
||||
$resQuery = mysqli_query($this->strDBId, $strSQL);
|
||||
// Error processing
|
||||
if ($resQuery && (mysqli_error($this->strDBId) == '')) {
|
||||
/* Error processing */
|
||||
if ($resQuery && (mysqli_error($this->strDBId) === '')) {
|
||||
$intReturn = mysqli_num_rows($resQuery);
|
||||
} else {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId);
|
||||
$this->error = true;
|
||||
$this->error = true;
|
||||
}
|
||||
return $intReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a safe insert string for database manipulations
|
||||
* @param string $strInput Input String
|
||||
* @return string Output String
|
||||
* @param string $strInput Input String
|
||||
* @return string Output String
|
||||
*/
|
||||
public function realEscape($strInput)
|
||||
public function realEscape(string $strInput): string
|
||||
{
|
||||
return mysqli_real_escape_string($this->strDBId, $strInput);
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize a mysql database connection
|
||||
* @return bool true = successful / false = error
|
||||
*/
|
||||
private function dbinit()
|
||||
{
|
||||
$this->strDBId = mysqli_init();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect to database server
|
||||
* @param string $dbserver Server name
|
||||
* @param int $dbport TCP port
|
||||
* @param string $dbuser Database user
|
||||
* @param string $dbpasswd Database password
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
private function dbconnect($dbserver = null, $dbport = null, $dbuser = null, $dbpasswd = null)
|
||||
{
|
||||
// Reset error variables
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
// Get parameters
|
||||
if ($dbserver == null) {
|
||||
$dbserver = $this->arrParams['server'];
|
||||
}
|
||||
if ($dbport == null) {
|
||||
$dbport = $this->arrParams['port'];
|
||||
}
|
||||
if ($dbuser == null) {
|
||||
$dbuser = $this->arrParams['username'];
|
||||
}
|
||||
if ($dbpasswd == null) {
|
||||
$dbpasswd = $this->arrParams['password'];
|
||||
}
|
||||
// Not all parameters available
|
||||
if (($dbserver == '') || ($dbuser == '') || ($dbpasswd == '')) {
|
||||
$this->strErrorMessage .= gettext('Missing server connection parameter!'). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
if ($booReturn == true) {
|
||||
$this->dbinit();
|
||||
//if ($this->booSSLuse == true) {
|
||||
// TO BE DEFINED
|
||||
//}
|
||||
$intErrorReporting = error_reporting();
|
||||
error_reporting(0);
|
||||
if ($dbport == 0) {
|
||||
$booReturn = mysqli_real_connect($this->strDBId, $dbserver, $dbuser, $dbpasswd);
|
||||
} else {
|
||||
$booReturn = mysqli_real_connect($this->strDBId, $dbserver, $dbuser, $dbpasswd, null, $dbport);
|
||||
}
|
||||
error_reporting($intErrorReporting);
|
||||
// Connection fails
|
||||
if ($booReturn == false) {
|
||||
$this->strErrorMessage = '[' .$dbserver. '] ' .gettext('Connection to the database server has failed '
|
||||
. 'by reason:'). ' ::';
|
||||
$strError = mysqli_connect_error();
|
||||
$this->strErrorMessage .= $strError. '::';
|
||||
$this->error = true;
|
||||
}
|
||||
}
|
||||
return $booReturn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select a database
|
||||
* @param string $database Database name
|
||||
* @return bool true = successful / false = error
|
||||
* Status messages are stored in class variable
|
||||
*/
|
||||
private function dbselect($database = null)
|
||||
{
|
||||
// Reset error variables
|
||||
$this->strErrorMessage = '';
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
// Get parameters
|
||||
if ($database == null) {
|
||||
$database = $this->arrParams['database'];
|
||||
}
|
||||
// Not all parameters available
|
||||
if ($database == '') {
|
||||
$this->strErrorMessage .= gettext('Missing database connection parameter!'). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
if ($booReturn == true) {
|
||||
$bolConnect = mysqli_select_db($this->strDBId, $database);
|
||||
// Session cannot be etablished
|
||||
if (!$bolConnect) {
|
||||
$this->strErrorMessage .= '[' .$database. '] ' .
|
||||
gettext('Connection to the database has failed by reason:'). ' ::';
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
if ($booReturn == true) {
|
||||
mysqli_query($this->strDBId, "set names 'utf8'");
|
||||
if (mysqli_error($this->strDBId) != '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
if ($booReturn == true) {
|
||||
mysqli_query($this->strDBId, "set session sql_mode = 'NO_ENGINE_SUBSTITUTION'");
|
||||
if (mysqli_error($this->strDBId) != '') {
|
||||
$this->strErrorMessage .= mysqli_error($this->strDBId). '::';
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
}
|
||||
return $booReturn;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Set SSL connection parameters
|
||||
* @param string $sslkey SSL key
|
||||
* @param string $sslcert SSL certificate
|
||||
* @param string $sslca SSL CA file (optional)
|
||||
* @param string $sslpath SSL certificate path (optional)
|
||||
* @param string $sslcypher SSL cypher (optional)
|
||||
* @return bool true = successful
|
||||
* Status messages are stored in class variable
|
||||
* @param string $sslkey SSL key
|
||||
* @param string $sslcert SSL certificate
|
||||
* @param string|null $sslca SSL CA file (optional)
|
||||
* @param string|null $sslpath SSL certificate path (optional)
|
||||
* @param string|null $sslcypher SSL cypher (optional)
|
||||
* @return bool true = successful
|
||||
* Status messages are stored in class variable
|
||||
* @noinspection PhpSameParameterValueInspection
|
||||
* @noinspection PhpUnusedPrivateMethodInspection
|
||||
*/
|
||||
/*
|
||||
private function dbsetssl($sslkey, $sslcert, $sslca = null, $sslpath = null, $sslcypher = null)
|
||||
private function dbsetssl(string $sslkey, string $sslcert, string $sslca = null, string $sslpath = null, string $sslcypher = null): bool
|
||||
{
|
||||
// Reset error variables
|
||||
/* Reset error variables */
|
||||
$this->strErrorMessage = "";
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
// Values are missing
|
||||
if (($sslkey == "") || ($sslcert == "")) {
|
||||
$this->strErrorMessage = gettext("Missing MySQL SSL parameter!")."::";
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
$this->error = false;
|
||||
$booReturn = true;
|
||||
/* Values are missing */
|
||||
if (($sslkey === "") || ($sslcert === "")) {
|
||||
$this->strErrorMessage = gettext("Missing MySQL SSL parameter!") . "::";
|
||||
$this->error = true;
|
||||
$booReturn = false;
|
||||
}
|
||||
if ($booReturn == true) {
|
||||
if ($booReturn === true) {
|
||||
mysqli_ssl_set($this->strDBId, $sslkey, $sslcert, $sslca, $sslpath, $sslcypher);
|
||||
}
|
||||
return($booReturn);
|
||||
return ($booReturn);
|
||||
}
|
||||
*/
|
||||
|
||||
/**
|
||||
* Close database server connectuon
|
||||
* @return bool true = successful / false = error
|
||||
*/
|
||||
private function dbDisconnect()
|
||||
{
|
||||
mysqli_close($this->strDBId);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user