connection = new mysqli($host, $username, $password, $dbname);
if (!$this->connection->connect_errno) {
$this->connected = true;
} else {
die('Fail to connect to the RDBMS.');
}
return $this->connection;
}
/**
* [__destruct description]
*/
/* public function __destruct()
{
$this->close();
} */
/**
* close method to close the opened connection to the RDBMS server
* @return void
*/
public function close()
{
if ($this->connected && $this->connection->close()) {
$this->connected = false;
} else {
die('Fail to close the connection to the RDBMS.');
}
}
/**
* query method that permit to execute a SQL query
* @param string $sql_query the SQL query to execute
* @return object mysqli_result or FALSE on failure and TRUE for queries
* without results
*/
public function query($sql_query)
{
if ($this->connected && !($this->current_result = $this->connection->query($sql_query))) {
echo "Fail to execute the SQL query : " . $sql_query . "
";
}
return $this->current_result;
}
/**
* prepare_query method for parametrized SQL query preparation
* @param string $prepared_query parametrized SQL query to prepare
* @return object statement object or FALSE if an error occurred
*/
public function prepare_query($prepared_query)
{
$this->current_pquery = $prepared_query;
if ($this->connected && !($this->current_stmt = $this->connection->prepare($this->current_pquery))) {
// Empty the currently stored prepared query in the failure case
$this->current_pquery = "";
echo "Fail to prepare SQL query : (" . $this->connection->errno . ") " . $this->connection->error . " - " . $this->current_pquery . "
";
}
return $this->current_stmt;
}
/**
* prepared_query_bind_param link parameters values to a prepared SQL query
* @param string $types parameters types
* @param array $params unidimensional array of parameters values
* @return boolean TRUE on success or FALSE on failure
*/
public function prepared_query_bind_param($types, $params)
{
$rt_val = $this->current_stmt->bind_param($types, ...$params);
if (!$rt_val) {
echo "Fail to link parameters to SQL query : (" . $this->current_stmt->errno . ") " . $this->current_stmt->error . " - " . $this->current_pquery . "
";
}
return $rt_val;
}
/**
* run_prepared_query method that execute a parametrized SQL query linked
* with its parameters values
* @return boolean TRUE on success or FALSE on failure
*/
public function run_prepared_query()
{
$rt_val = $this->current_stmt->execute();
if (!$rt_val) {
echo "Fail to execute SQL query : (" . $this->current_stmt->errno . ") " . $this->current_stmt->error . " - " . $this->current_pquery . "
";
}
return $rt_val;
}
/**
* get_pquery_result method to get the resultset of parametrized SQL query
* @return object mysqli_result resultset or FALSE for other DML queries or on failure
*/
public function get_pquery_result()
{
$rt_val = $this->current_result = $this->current_stmt->get_result();
if (!$rt_val) {
echo "Fail to fill SQL query result : (" . $this->current_stmt->errno . ") " . $this->current_stmt->error . " - " . $this->current_pquery . "
";
}
return $rt_val;
}
/**
* [get_result_array description]
* @return [type] [description]
*/
public function get_result_array()
{
$row = $this->current_result->fetch_array();
if (is_null($row)) {
$rt_val = [];
} elseif (!isset($row)) {
echo "Fail to build SQL query result array : (" . $this->current_stmt->errno . ") " . $this->current_stmt->error . " - " . $this->current_pquery . "
";
$rt_val = false;
} else {
$rows[] = $row;
while ($row = $this->current_result->fetch_array()) {
$rows[] = $row;
}
$rt_val = $rows;
}
return $rt_val;
}
/**
* [close_prepared_query description]
* @return [type] [description]
*/
public function close_prepared_query()
{
$rt_val = $this->current_stmt->close();
if (!$rt_val) {
echo "Fail to close SQL query : (" . $this->current_stmt->errno . ") " . $this->current_stmt->error . " - " . $this->current_pquery . "
";
}
return $rt_val;
}
}
?>