DB server name // ----------- $arrParams['port'] -> DB server port // $arrParams['user'] -> DB server username // $arrParams['password'] -> DB server password // $arrParams['database'] -> DB server database name // /////////////////////////////////////////////////////////////////////////////////////////////// class mysqlidb { // Define class variables var $error = false; // Will be filled in functions var $strDBId = ""; // Will be filled in functions var $intLastId = 0; // Will be filled in functions var $intAffectedRows = 0; // Will be filled in functions var $strErrorMessage = ""; // Will be filled in functions var $booSSLuse = false; // Defines if SSL is used or not var $arrParams = ""; // Must be filled in while initialization var $arrSQLdef = ""; // Must be filled in while initialization var $strSQLQuote1 = "`"; // Quote char for table or row names var $strSQLQuote2 = "'"; // Quote char for table or row names /////////////////////////////////////////////////////////////////////////////////////////// // Class constructor /////////////////////////////////////////////////////////////////////////////////////////// // // Activities during initialisation // /////////////////////////////////////////////////////////////////////////////////////////// function __construct() { $this->arrParams['server'] = ""; $this->arrParams['port'] = 0; $this->arrParams['username'] = ""; $this->arrParams['password'] = ""; $this->arrParams['database'] = ""; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Connect to database /////////////////////////////////////////////////////////////////////////////////////////// // // Opens a connection to the database server and select a database // // // Return value: true successful // false error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function getdatabase() { $this->dbconnect(); if ($this->error == true) { return false; } $this->dbselect(); if ($this->error == true) { return false; } return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Get a single dataset field value /////////////////////////////////////////////////////////////////////////////////////////// // // Sends an SQL statement to the server and returns the result of the first data field // // Parameters: $strSQL SQL Statement // // Return value: = successful // = error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function getFieldData($strSQL) { // Reset error variables $this->strErrorMessage = ""; $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) == "")) { // Return the field value from position 0/0 $arrDataset = mysqli_fetch_array($resQuery,MYSQLI_NUM); return $arrDataset[0]; } else if (mysqli_error($this->strDBId) != "") { $this->strErrorMessage .= mysqli_error($this->strDBId)."::"; $this->error = true; return(""); } return(""); } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Get a single dataset /////////////////////////////////////////////////////////////////////////////////////////// // // Sends an SQL statement to the server and returns the result of the first data set // // Parameters: $strSQL SQL Statement // $arrDataset Return value including the data set // // Return value: true = successful // false = error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function getSingleDataset($strSQL,&$arrDataset) { $arrDataset = ""; // Reset error variables $this->strErrorMessage = ""; $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 $arrDataset = mysqli_fetch_array($resQuery,MYSQLI_ASSOC); return true; } else if (mysqli_error($this->strDBId) != "") { $this->strErrorMessage .= mysqli_error($this->strDBId)."::"; $this->error = true; return false; } return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Get a full data part /////////////////////////////////////////////////////////////////////////////////////////// // // Sends an SQL statement to the server and returns the result inside a data array // // Parameters: $strSQL SQL Statement // $arrDataset Return value including the data records // $intDataCount Return value including the number of the records // // Return value: true = successful // false = error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function getDataArray($strSQL,&$arrDataset,&$intDataCount) { $arrDataset = ""; $intDataCount = 0; // Reset error variables $this->strErrorMessage = ""; $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); $i = 0; // Put the values into the array while ($arrDataTemp = mysqli_fetch_array($resQuery,MYSQLI_ASSOC)) { foreach ($arrDataTemp AS $key => $value) { $arrDataset[$i][$key] = $value; } $i++; } return true; } else if (mysqli_error($this->strDBId) != "") { $this->strErrorMessage .= mysqli_error($this->strDBId)."::"; $this->error = true; return false; } return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Insert/update/delete data /////////////////////////////////////////////////////////////////////////////////////////// // // Insert/update or delete data // // Parameters: $strSQL SQL Statement // $this->intLastId Dataset insert ID // $this->intAffectedRows The number of the affected records // // Return value: true = successful // false = error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function insertData($strSQL) { // Reset error variables $this->strErrorMessage = ""; $this->error = false; // Send the SQL statement to the server $resQuery = mysqli_query($this->strDBId,$strSQL); // Error processing if (mysqli_error($this->strDBId) == "") { $this->intLastId = mysqli_insert_id($this->strDBId); $this->intAffectedRows = mysqli_affected_rows($this->strDBId); return true; } else { $this->strErrorMessage .= mysqli_error($this->strDBId)."::"; $this->error = true; return false; } } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Counts data rows /////////////////////////////////////////////////////////////////////////////////////////// // // Counts the number of records // // Parameters: $strSQL SQL Statement // // Return value: = successful // 0 = no datasets or error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function countRows($strSQL) { // Reset error variables $this->strErrorMessage = ""; $this->error = false; // Send the SQL statement to the server $resQuery = mysqli_query($this->strDBId,$strSQL); // Error processing if ($resQuery && (mysqli_error($this->strDBId) == "")) { return mysqli_num_rows($resQuery); } else { $this->strErrorMessage .= mysqli_error($this->strDBId); $this->error = true; return 0; } } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Use mysqli_real_escape_string /////////////////////////////////////////////////////////////////////////////////////////// // // Returns a safe insert string for database manipulations // // Value: $strInput Input String // // Return value: $strOutput Output String // /////////////////////////////////////////////////////////////////////////////////////////// function real_escape($strInput) { return mysqli_real_escape_string($this->strDBId,$strInput); } /////////////////////////////////////////////////////////////////////////////////////////// // // Assistant functions // /////////////////////////////////////////////////////////////////////////////////////////// // Function: Initialize a mysql database connection /////////////////////////////////////////////////////////////////////////////////////////// // // Return value: true // /////////////////////////////////////////////////////////////////////////////////////////// function dbinit() { $this->strDBId = mysqli_init(); return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Connect to database server /////////////////////////////////////////////////////////////////////////////////////////// // // Parameters: $dbserver Server name // $dbuser Database user // $dbpasswd Database password // $dbname Database name // $dbport TCP port // // Return value: true successful // false error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function dbconnect($dbserver=NULL,$dbport=NULL,$dbuser=NULL,$dbpasswd=NULL) { // Reset error variables $this->strErrorMessage = ""; $this->error = false; // 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; return false; } $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); } $arrError = error_get_last(); error_reporting($intErrorReporting); // Connection fails if($booReturn == false) { $this->strErrorMessage = "[".$dbserver."] ".gettext("Connection to the database server has failed by reason:")." ::"; if (mysqli_connect_error($this->strDBId) != "") $this->strErrorMessage .= mysqli_connect_error($this->strDBId)."::"; $this->error = true; return false; } return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: select database /////////////////////////////////////////////////////////////////////////////////////////// // // Parameters: $database Database name // // Return value: true = successful // false = error // Status message is stored in class variable $this->strErrorMessage // /////////////////////////////////////////////////////////////////////////////////////////// function dbselect($database=NULL) { // Reset error variables $this->strErrorMessage = ""; $this->error = false; // 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; return false; } $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; return false; } $resQuery = mysqli_query($this->strDBId,"set names 'utf8'"); if (mysqli_error($this->strDBId) != "") { $this->strErrorMessage .= mysqli_error($this->strDBId)."::"; $this->error = true; return false; } $resQuery = 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; return false; } return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Set SSL parameters /////////////////////////////////////////////////////////////////////////////////////////// // // Parameters: $sslkey SSL key // $sslcert SSL certificate // $sslca SSL CA file (optional) // $sslpath SSL certificate path (optional) // $sslcypher SSL cypher (optional) // // Return value: true successful // The mysqli_ssl_set function always returns TRUE! // /////////////////////////////////////////////////////////////////////////////////////////// function dbsetssl($sslkey,$sslcert,$sslca=NULL,$sslpath=NULL,$sslcypher=NULL) { // Reset error variables $this->strErrorMessage = ""; $this->error = false; // Values are missing if (($sslkey == "") || ($sslcert == "")) { $this->strErrorMessage = gettext("Missing MySQL SSL parameter!")."::"; $this->error = true; return false; } mysqli_ssl_set($this->strDBId,$sslkey,$sslcert,$sslca,$sslpath,$sslcypher); return true; } /////////////////////////////////////////////////////////////////////////////////////////// // Function: Close database server connectuon /////////////////////////////////////////////////////////////////////////////////////////// // // Value: none // // Return value: true if successful, false if failed // /////////////////////////////////////////////////////////////////////////////////////////// function dbdisconnect() { mysqli_close($this->strDBId); return true; } } ?>