4 /* This class is an abstraction class for the database used. Initially it was
5 * written for the gnucomo-project to support PostgreSQL, but ultimately
6 * it must be ready to be used with other database systems as well. The code
7 * will then be used to over come the specific differences between systems
11 var $db_host; //The host-name (or IP-address) to make the connection to
12 var $db_name; //The name of the database
13 var $db_user; //The username as known in the database
14 var $db_password; //The password used for entry
16 //Database information
17 var $db_connection; //The active database connection
18 var $db_result; //The result-set from a query
19 var $db_row_number; //The row-number that is currently active
20 var $db_result_row; //Array with in each element a field of the result
22 function db_connect () {
23 /* This function makes the connection to the database. It will look at the selected DBMS.
24 * It will detected if password or hostname is missing and leave that out of the string.
25 * INPUT: NONE (all defined in the class)
28 $local_connection_string = '';
29 if ($this->db_host == '') {
30 $local_connection_string .= "host=$this->db_host ";
33 $local_connection_string = "dbname=$this->db_name user=$this->db_user ";
35 if ($this->db_password == '') {
36 $local_connection_string .= $this->db_password;
39 $this->db_connection = pg_pconnect($local_connection_string);
40 if ($this->have_db_connection() == FALSE) {
41 syslog (LOG_INFO, "Failed to make a connection to Postgres");
42 die ("connection to Postgres failed\n");
44 syslog (LOG_INFO, "Connection to Postgres was made correctly");
48 function have_db_connection () {
49 /* This simple function verifies if a connection has succesfully been made
50 * Output: Returns TRUE if the connection was successfully (else it will be FALSE)
52 // PHP-> 4.2.Xcode if (pg_connection_status($this->db_connection) == PGSQL_CONNECTION_BAD) {
53 if ($this->db_connection == '') {
60 function query ($inp_sql_query) {
62 /* This function executes a query against the active database connection
64 * - $inp_sql_query: The is the string with the SQL to execute
65 * OUTPUT: Resultstring
67 $this->db_result = pg_exec ($this->db_connection, $inp_sql_query);
68 $this->db_row_number = 0;
72 function fetch_row() {
73 /* This function returns a single row as a result of a query if the last record has been reached
74 * the result will be FALSE otherwise it will be TRUE
75 * INPUT : NONE (everything is available within the class)
76 * OUTPUT : Success TRUE/FALSE
79 unset ($this->db_result_row);
80 if (pg_numrows($this->db_result) < $this->db_row_number) {
81 $this->db_row_number=-1;
84 $this->db_result_row = pg_fetch_row($this->db_result);
90 /* This functions returns the number of rows in a resultset
92 * OUTPUT : Number of rows (number)
94 return pg_numrows($this->db_result);
95 // 4.2.X return pg_num_rows($this->db_result);
98 function num_fields() {
99 /* This function returns the number of fields in the resultset
101 * OUTPUT : Number of fields (number)
103 return pg_numfields($this->db_result);
104 //4.2.X return pg_num_fields($this->db_result);