X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Fdb.php;h=9d967d6dd4bbec29ff9d54b1acd9cf6aa33cc9cb;hb=HEAD;hp=b548804c385f586ede81f6ac8f5c73f875d8dc92;hpb=b5f60f89589412e18b51326378ab13b9a4fa0f19;p=Project_webapp.git diff --git a/lib/db.php b/lib/db.php index b548804..9d967d6 100644 --- a/lib/db.php +++ b/lib/db.php @@ -9,58 +9,69 @@ class CustomDB public $connected; private $current_pquery; private $current_stmt; + private $current_result; /** - * [__construct description] - * @param [type] $host [description] - * @param [type] $username [description] - * @param [type] $password [description] - * @param [type] $dbname [description] + * __construct class constructor method that permit to initialize + * the connection to the RDBMS database + * @param string $host RDBMS hostname + * @param string $username RDBMS user + * @param string $password RDBMS user password + * @param string $dbname RDBMS database to use + * @return object an object which represents the connection to a RDBMS Server. */ public function __construct($host, $username, $password, $dbname) { - $connection = new mysqli($host, $username, $password, $dbname); - $this->connection = $connection; + $this->connection = new mysqli($host, $username, $password, $dbname); if (!$this->connection->connect_errno) { $this->connected = true; } else { - die('Fail to connect to the RDBMS'); + die('Fail to connect to the RDBMS.'); } return $this->connection; } /** - * [close description] - * @return [type] [description] + * [__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'); + die('Fail to close the connection to the RDBMS.'); } } /** - * [query description] - * @param [type] $sql_query [description] - * @return [type] [description] + * 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 && !($query_result = $this->connection->query($sql_query))) { + if ($this->connected && !($this->current_result = $this->connection->query($sql_query))) { echo "Fail to execute the SQL query : " . $sql_query . "
"; } - return $query_result; + return $this->current_result; } /** - * [prepare_query description] - * @param [type] $prepared_query [description] - * @return [type] [description] + * 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) { @@ -74,14 +85,14 @@ class CustomDB } /** - * [prepared_query_bind_param description] - * @param [type] $params [description] - * @return [type] [description] + * 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(...$params) + public function prepared_query_bind_param($types, $params) { - var_dump($params); - $rt_val = $this->current_stmt->bind_param($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 . "
"; } @@ -89,8 +100,9 @@ class CustomDB } /** - * [run_prepared_query description] - * @return [type] [description] + * 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() { @@ -101,6 +113,41 @@ class CustomDB 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] @@ -114,4 +161,5 @@ class CustomDB return $rt_val; } } + ?>